Brent Grimes' 92-yard interception return put Miami 17-3 up before two Giovani Bernard touchdowns levelled the scores. The game finished 20-20 after regulation but Cameron Wake's goalline sack decided matters.
After Mike Nugent's field goal for the Bengals, back-up running back Daniel Thomas led Miami to the one-yard line and quarterback Ryan Tannehill leapt in for a touchdown.
Andy Dalton's early fumble had gone unpunished when Caleb Sturgis missed a simple field goal, but the Bengals quarterback threw interceptions to Dimitri Patterson and Grimes which cost his side 10 points.
But Bernard scored with a three-yard run and got his second score with a thrilling 35-yard scamper, the rookie escaping from Grimes and Olivier Vernon, weaving twice across the field and even getting a block from Dalton en route to the end zone.
Nugent and Sturgis traded shots as the game went to overtime and after a series of punts, Wake burst through the line to bring down Dalton for the game-winning two points.
Lamar Miller and Thomas combined for 143 Miami rushing yards, while Bernard had 104 all-purpose yards and team-mate AJ Green caught a career-high 11 passes for 128 yards.
Cincinnati still lead the AFC North at 6-3 while the AFC East Dolphins improve to 4-4.