The Bengals (6-8) kept their slim playoff hopes alive by breaking their longest losing streak since they dropped 10 games in a row in 2010.
The Raiders (3-11), who upset the Pittsburgh Steelers last week and were looking for their first two-game winning streak since last season, never led, but sliced Cincinnati's lead to 23-16 on Daniel Carlson's third field goal of the game from 40 yards out with 5:09 left in the game.
However, Alex Erickson returned Carlson's ensuing kickoff 77 yards to the Oakland 21-yard line, and Mixon virtually put the game away with a 15-yard touchdown run two plays later.
Mixon, who had 47 of his 84 first-half yards on one play, scored on a one-yard run on fourth down with 10:17 left in the second quarter to give the Bengals a 14-0 lead.
Quarterback Jeff Driskel, replacing injured Cincinnati starter Andy Dalton, earned his first victory in three NFL starts. He completed only 14-of-34 passes for 130 yards with one interception and a 7-yard touchdown pass to Tyler Boyd for the first score of the game with exactly three minutes left in the first quarter.
The play was set up by Carr's 44-yard pass to fourth-string tight end Darren Waller on his first catch of the season, and he also ran for 21 yards on a reverse.
Carr did not throw an interception for the ninth straight game, breaking the Raiders' record of 277 passes without a pick set by Rich Gannon. Carr has thrown 299 passes without an interception since his last one on Oct. 7.
However, Carr was sacked five more times for a total of 47 this season, including three by defensive tackle Geno Atkins in the second half, as Oakland played without injured starting guards Gabe Jackson and Kelechi Osemele.
Oakland rushed for only 68 yards, led by Doug Martin's 39 on nine carries.
The Raiders, who will move to Las Vegas in 2020 and are not sure where they will play next season, return home to play the Denver Broncos on Christmas Eve in what might be their last game at the Oakland Coliseum.