DENVER - JaMarcus Russell returned to the Oakland Raiders' lineup in time to hurt the Denver Broncos' playoff hopes.
Russell threw a 10-yard touchdown pass to Chaz Schilens with 35 seconds left for a 20-19 scrum-filled win over the Broncos on Sunday.
Russell was benched a month ago and passed by Charlie Frye on the depth chart this week.
The former No. 1 overall draft pick entered when Frye was knocked out of the game early in the fourth quarter by a blow to the head from linebacker Andra Davis. He went 5 of 11 for 47 yards.
The Broncos (8-6) are still in the AFC wild-card hunt but they were expecting a win over Oakland (5-9), which won at Invesco Field for the second straight season.
Denver left the door open for a Raiders upset by failing to punch it into the end zone after reaching the Oakland 2 late in the fourth.
Brandon Stokley hauled in a 63-yard reception but was horse-collared at the 4 by cornerback Sanford Routt, who saved the sealing touchdown and was whistled for a 2-yard penalty.
From there, the Broncos couldn't score and Matt Prater's fourth field goal made it 19-13, leaving the Raiders within a touchdown with less than six minutes left.
The Raiders went three-and-out but so did the Broncos, and Oakland got the ball back at its 38 with 3½ minutes remaining. Russell moved the Raiders to the Denver 5 and, after a false start, hit Schilens with the game-winner.
The Broncos were outgained on the ground 241-80, with Michael Bush gashing Denver for 133 yards on 18 carries and Darren McFadden gaining 74 yards on a dozen handoffs.
Frye was 9 for 17 for 68 yards and an interception, plus a 26-yard scamper on his only keeper. He had not played this year and worked strictly with Oakland's scout team. His last start was for Seattle on Oct. 12, 2008, against Green Bay.
Brandon Marshall, who caught an NFL-record 21 passes last week at Indianapolis, settled for seven receptions against Oakland. His 6-yard TD grab gave Denver a 16-13 lead in the third.
A penalty on the ensuing kickoff pushed the Raiders back to their own 11, but runs of 18 and 40 yards by Bush and 28 yards by McFadden got them to the Denver 3. But they couldn't get into the end zone on four runs. McFadden was stuffed just shy of the goal line on fourth-and-goal from the 3.
The Raiders took a 13-7 lead into the locker room after a folly-filled first half by the Broncos.
Denver again struggled in the red zone, committed silly penalties and piled up too many whiffs on blocks, including one particularly bad one by running back Knowshon Moreno, who failed to pick up a linebacker blitz that got quarterback Kyle Orton leveled and killed a drive. It was LaMont Jordan in on third downs after that.
Champ Bailey's interception in Oakland territory - maybe the easiest of his 45 career picks - set up the Broncos in great scoring position. On second-and-5 from the 12, Orton threw to left tackle Ryan Clady, but the 325-pounder had lined up at his usual spot instead of at tight end, rendering him an ineligible receiver.
Mitch Berger's 7-yard punt set up Oakland's first score, a 23-yard untouched run by Bush up the middle.
Sebastian Janikowski's 55-yard field goal made it 13-6. Prater nailed a 51-yarder in the third quarter.
NOTES: Berger also had a 64-yard punt and a 59-yarder.... Before the game, the fans held a moment of cheering for Tim "Barrel Man" McKernan, who died earlier this month at age 69. McKernan began wearing his barrel, along with his cowboy boots and hat, to Broncos games in 1978.... The game was halted for a few minutes with 6:53 left, apparently after a fan shined a laser on the players from the south end zone while the Broncos were lined up on second-and-goal.... Broncos WR Eddie Royal injured his neck.... Promoted from the practice squad Saturday, rookie DB Tony Carter knocked away a possible touchdown catch by Schilens and recovered a fumble by McFadden.