CINCINNATI -- Receiver Chad Johnson's touchdown celebration went just as planned. Everything else was made up on the run.
The 41-38 victory moved Cincinnati (8-6) back into a first-place tie with Baltimore in the AFC North and left the San Francisco 49ers winless on the road and eliminated from the postseason.
"I knew we would win," Chad Johnson said. "We'll be all right. We put up 41 today."
It almost wasn't enough.
For the first time in their 36-year history, the Bengals gave up 38 points and won. San Francisco (6-8) had 502 yards and 31 first downs, but couldn't overcome its propensity to self-destruct on the road.
The 49ers are 6-1 at home 0-7 on the road, a mystifying trend for a team that historically enjoyed travel.
"We've been looking for that answer all season long," said Jeff Garcia, who completed 26-of-33 for 344 yards and led a fourth-quarter comeback. "Somehow we need to show up on the same page on the same day, the offense and the defense. Giving it up three times put us in a bad situation."
The Bengals took advantage of three costly 49ers fumbles, putting the game in the hands of their same-named players -- one of them a showboat, the other a season-saver.
Chad Johnson mugged for the cameras with a preprinted sign after his 10-yard touchdown catch, a display of one-upmanship that didn't sit well with coach Marvin Lewis.
"He got caught up in everything," Lewis said. "They have a fine player over there in Terrell Owens, and Chad was just trying to answer. Chad's a fine player in his own right. He ought to just be Chad."
All Owens did after his touchdown later in the half was flip some snow at the fans. He wouldn't talk to reporters afterward.
Rudi Johnson scored two touchdowns in the second half as Corey Dillon's famous fill-in. Dillon missed much of the first half of the season with a groin injury, and was limited on Sunday because of the flu.
While the crowd of 64,666 chanted his first name, Johnson broke a 49-yard touchdown run on fourth-and-1, then gave the Bengals their final score on a 3-yard run with 2:18 to go. He also recovered an onside kick that clinched it.
The Bengals ran for 186 yards in the second half, keeping the 49ers at bay.
"We were getting run over," defensive end Chidi Ahanotu said. "We didn't do a good job of adjusting to the changes they made at halftime."
Defense wasn't the 49ers' only problem.
Barlow fumbled twice deep in Bengals territory, and Kevin Hardy returned Garcia's fumble 10 yards for a touchdown that got the Bengals' capacity crowd revved on a frosty afternoon.
The receivers took advantage of the mucky field, which was covered during a 2-inch overnight snowfall that still took a toll. The grounds crew spread a drying compound over several swampy spots.
Kitna made a nice recovery from his last game -- two interceptions, two fumbles in a 31-13 loss at Baltimore that dropped Cincinnati into second place in the AFC North. He went 18-of-25 for 189 yards against a team that has given up 200 points on the road this season.
Kitna rolled right and spotted Chad Johnson in the back corner of the end zone for the Bengals' first score. Johnson immediately popped up and retrieved a preprinted orange sign tucked behind a snow bank.
Johnson, who has repeatedly been fined by the league for uniform violations and touchdown celebrations, held up the sign that read: "Dear NFL: Please don't fine me again."
"All I had to do was just score at that end and I'd be all right," he said. "I was trying to catch the Sharpie thing. I don't know how close the sign was to the Sharpie."
Owens, who was fined last season for pulling a pen out of his sock and autographing a ball after a touchdown, crouched and flipped a little snow up into the stands after his 58-yard score.
"That's what he did?" Chad Johnson said. "Man, that's rude."
- Owens joined Jerry Rice as 49ers who have scored 300 points.
- Bengals left tackle Levi Jones played the entire game six days after having torn knee cartilage repaired.
- Dillon and several other Bengals were limited by the flu Sunday. Dillon carried nine times for only 24 yards.
- Rudi Johnson became the first Bengals running back to have three 150-yard games in one season.
The Associated Press News Service
Copyright 2003, The Associated Press, All Rights Reserved