Each team had three scoring drives Sunday. Cincinnati scored touchdowns; the Ravens settled for field goals. As a result, the Bengals remained in first place in the AFC North with a 21-9 victory.
Carson Palmer threw two touchdown passes and directed touchdown drives of 80, 31 and 91 yards for Cincinnati (7-2). Rudi Johnson ran for 97 yards and a score, Chad Johnson had five catches for 91 yards and the Bengals averaged 5.2 yards per offensive play.
"I can do the math. You can't trade sevens for three, plain and simple," Ravens coach Brian Billick said. "If you get an opportunity to score or stop them, you can't trade touchdowns for field goals, and that's what we did today."
It all added up to a feel-good victory for the surprising Bengals.
"I'm happy where we are at 7-2," Cincinnati coach Marvin Lewis said. "I don't think we had any major injuries today. When we come out of the bye, it looks like we should be at full strength."
Cincinnati was nursing a 14-6 lead before Palmer capped the 91-yard drive with a 3-yard TD pass to Chris Henry with 6:05 to go. That was enough of a cushion to dispatch the Ravens, who haven't scored more than 19 points in any game this season.
Lewis averaged 3.3 yards per carry and Anthony Wright averaged just 8 yards per completion for the Ravens. It was the first time in eight games against Cincinnati that Lewis failed to run for at least 100 yards.
"We didn't make up any special recipes or do any witchcraft before the game," Bengals linebacker Brian Simmons said. "Guys just went out there and played team ball."
The Bengals had lost seven straight in Baltimore until last year, when Palmer brought Cincinnati back from a 17-point deficit in the fourth quarter. This time, the Bengals held the lead over the final 36 minutes, thanks to a defense that limited Baltimore to 240 yards.
Wright went 19-for-30 for 153 yards, and the Ravens' flickering playoff hopes took another hit. Baltimore's 2-6 start is the worst in franchise history, matching the mark of the 1998 team.
Wright left the game in the third quarter with an injured left ankle after being tackled by John Thornton. Kordell Stewart came in and revived the Baltimore offense, running four times for 23 yards on a 13-play drive and even going out for a pass on a trick play.
The throw to Stewart, from wide receiver Randy Hymes, ticked off the quarterback's fingertips. Minutes later, Stover kicked a 31-yard field goal to bring Baltimore to 14-9 with 12:46 left.
But Palmer answered with a 12-play march that included a 48-yard pass to Chad Johnson.
"That says a lot about this team and its offense," said Palmer, who went 19-for-26 for 248 yards. "We answer when we need to, even it's not always perfect and not always pretty."
Wright returned the next series, but by then the Ravens were in too big of a hole.
An inadvertent referee's whistle cost Baltimore an apparent touchdown early in the third quarter with Cincinnati holding a 14-6 lead. Bengals tight end Matt Schobel fumbled when hit by Adalius Thomas, and Will Demps picked up the ball and went the distance.
But officials ruled the play dead as Demps picked up the ball at the Baltimore 42, and the Ravens went nowhere before punting.
"It was an error," referee Jeff Triplette said of the quick whistle. "By rule, there is nothing we can do."
Baltimore outgained Cincinnati 160-138 in the first half, but the Bengals used a long drive and cashed in a turnover to take a 14-6 lead.
A 1-yard touchdown run by Rudi Johnson put Cincinnati up 7-3 in the second quarter. Todd Heap lost a fumble on the third play after the kickoff, and the Bengals recovered on the Baltimore 31.
Four straight runs by Johnson moved the ball to the 8, where Palmer flipped a shovel pass to rookie Tab Perry, who scored his first NFL touchdown on his second reception of the season.
Stover then ended a beat-the-clock march with a 32-yard field goal.
Ravens defensive back Dale Carter hurt his hamstring and did not return. ... Heap passed Travis Taylor as the most prolific receiver in franchise history. Heap now has 205 career receptions. ... Cincinnati's Shayne Graham hit his 104th consecutive PAT, surpassing Doug Pelfry's team record of 103.