Titans quarterback Marcus Mariota completed 25-of-44 passes for 264 yards and a touchdown in the contest.
Mariota connected with running back DeMarco Murray on a seven-yard touchdown pass with just 36 seconds left to give the Titans a 24-20 lead. It capped off a 12-play, 73-yard drive that took 4:27 off the clock.
The Bengals took a 20-17 lead on a 70-yard touchdown pass from quarterback Andy Dalton to receiver A.J. Green with 5:03 left in the contest.
A “Hail Mary” pass by the Bengals fell incomplete on the final play of the game.
The Titans (6-3) have now won four straight.
After the Titans defensed forced a three-and-out on the game’s opening drive, the offense went to work.
The Titans put together a 10-play, 75-yard drive on their first drive, capping it off with a two-yard touchdown run by Murray.
It was an impressive start for the Titans, who picked up 28 yards on a Mariota run, and a pair of 20-yard catches from receivers Rishard Matthews and Taywan Taylor along the way.
But the Bengals answered back, making it 7-6 on a 37-yard touchdown pass from Dalton to receiver Brandon Lafell.
The Titans defense made a big play — and set up another score — in the second quarter.
Brian Orakpo sacked Dalton, and linebacker Derrick Morgan dove on the loose ball at the Cincinnati 27-yard line. Morgan later recovered another fumble.
Murray scored on a one-yard run to cap off a 5-play, 27-yard drive, and it gave the Titans a 14-6 lead. Earlier, the Titans missed a golden opportunity to score, as Matthews dropped a would-be touchdown and kicker Ryan Succop missed a 48-yard field goal.
The Bengals cut the lead to 14-13 with 1:42 left before halftime on a three-yard run by Joe Mixon, which was set up by a Mariota interception.
A 44-yard field goal by Succop on the final play of the half gave the Titans a 17-13 lead at the break.
After a scoreless third quarter, the Titans had a chance to take control early in the fourth quarter. But after a long drive, receiver Corey Davis fumbled as he headed toward the end zone. Instead of a touchdown, the ball went into the end zone and out of bounds for a touchback, which gave the ball back to the Bengals.