ORCHARD PARK, N.Y. (AP) -- Who needs to debate the Bills' revolving door at quarterback when Marshawn Lynch showed he can effectively fill two positions?
The rookie running back threw a touchdown pass and ran for another on consecutive fourth-quarter possessions, sparking Buffalo's popgun attack in a 33-21 win over the Cincinnati Bengals on Sunday.
No big deal, said Lynch, the first-round pick who has now helped produce six of the Bills' nine offensive touchdowns this season.
"Aw, man, it was high school. Pitch and catch with Robert Royal," Lynch said, referring to his 8-yard pass to the tight end that put the Bills up for good, 26-21 with 5:51 remaining. "I just wanted to make sure I got that tight spiral on the ball."
He was as effective as J.P. Losman, who put up big numbers but lacked finish in attempting to win back his starting job.
Losman went 24-of-34 for 295 yards with a touchdown and interception in making his first start in five weeks. He was filling in for rookie Trent Edwards, who sprained his right hand in a 13-3 win at the New York Jets last week.
Losman's problem is the same that plagued Edwards so far this season. Against Cincinnati, after Lee Evans caught an 8-yard touchdown pass on the opening possession, the Bills settled for four field goals on four trips inside the Bengals 20 before Lynch took over.
Lynch finished with a career-best 153 yards rushing, capping by a splendid 56-yard touchdown run with 2:22 left. He helped the Bills produce 479 yards of offense, matching their most since a 49-31 loss to Oakland on Oct. 6, 2002.
The Bills (4-4) have won three straight and four of five to overcome an 0-3 start.
"It's real big. It's big for everybody in this locker room," said Evans, who had a season-best 165 yards receiving. "The mistakes we made early in the season, we're not making now. We just have to keep it rolling."
The Bengals (2-6) not only lost for the sixth time in seven games, they also might have lost Chad Johnson. The colorful wide receiver was carted off the field on a stretcher with 2 minutes left and then transported to a Buffalo-area hospital as a precaution after complaining of neck pain.
Coach Marvin Lewis said Johnson never lost consciousness and had movement in all extremities.
Johnson was hurt when he was sandwiched by Bills defenders Donte Whitner and Coy Wire while attempting a diving catch over the middle. The game was delayed for about 10 minutes as Johnson was attended to by team trainers.
The Bengals continue to be undone by a porous and injury-depleted defense, which entered the game allowing 385 yards offense and 30 points.
"I'm not happy about it and there's nothing I can change about it," Lewis said. "We're disappointed."
The Bengals squandered two leads and failed to take advantage of Glenn Holt's 100-yard kickoff return that put them up 14-10 in late in the second quarter.
Cincinnati's offense sputtered down the stretch, managing 22 yards and one first down on its first three possessions of the fourth quarter.
"We're just not a very good football team," quarterback Carson Palmer said. "I don't have words for the way we feel in this locker room about this game, about this season. And it's frustrating."
For Houshmandzadeh, it was his 10th touchdown reception to set a career high. He also extended his scoring streak to eight games, the longest to start a season since Elroy Hirsch scored in 10 straight games with the Los Angeles Rams in 1961.
The Bengals, however, were stymied by the Bills' no-name defense that limited the Bengals to 28 yards rushing. That included Rudi Johnson managing 11 yards on nine carries; he missed three of the past four games with a hamstring injury.
"It's about earning respect," linebacker Angelo Crowell said after leading the Bills with 14 tackles. "Going out there and beating Cincinnati ... and doing those types of things eventually gains respect."
Lynch was the first non-Bills quarterback to complete a touchdown pass since RB Joe Cribbs hit RB Curtis Brown for a 9-yard pass against Dallas in 1981. ... Holt's return was the second longest in Bengals history, 2 yards short of the mark set by Eric Bieniemy against the Giants in 1997. ... By converting Evans' touchdown, PK Rian Lindell hit his 235th consecutive extra point, setting the NFL record for longest streak to open a career. The eight-year veteran passed the record set by Tommy Davis from 1959-65.