NASHVILLE - Chris Johnson may quiet the boos and critics for at least a few days, and the Tennessee Titans keep hanging around in the playoff chase.
No matter how ugly it may look.
Johnson ran for a season-high 190 yards, and Matt Hasselbeck threw a 2-yard touchdown pass to Damian Williams on fourth-and-2 with 3:01 left and the Titans beat the Tampa Bay Buccaneers 23-17 Sunday.
The Titans (6-5) forced five turnovers and overcame four turnovers of their own. The Bucs outscored them 14-3 off mistakes even though Tennessee got the ball three times on Tampa Bay's side of the field.
But the Titans got the ninth and final turnover of the game when rookie linebacker Colin McCarthy intercepted Josh Freeman with 2:19 left.
The Bucs (4-7) lost their fifth straight even with LeGarrette Blount running for 103 yards.
Freeman threw for 199 yards and a touchdown, but he had an interception and lost a fumble. He also fumbled the snap on fourth-and-1 before being tackled with 40 seconds left to seal the Titans' victory.
Tommie Campbell took a reverse from Marc Mariani and ran 84 yards for a kickoff return, Dave Ball had two sacks, and Rob Bironas kicked field goals of 31, 52 and 38 yards as the Titans keep chasing the Houston Texans (8-3) in the AFC South.
Johnson ran for 44 yards, including a season-long 34-yarder, as Tennessee drove 80 yards to go ahead. But the Titans had to go for it on fourth down, and Hasselbeck rolled right before finding Williams at the back of the end zone for a 20-17 lead. He finished 19 of 34 for 160 yards and two interceptions.
Tampa Bay had been giving up 133.5 yards rushing per game. Johnson shredded the Bucs at times for the third-best rushing game of his career after being booed heavily most of this season after signing a $53.5 million extension.
On a rainy day with a cold front dropping the temperature more than 15 degrees, both teams had a hard time holding onto the ball.
The Bucs tied it up at 10-all just before halftime off Tennessee's second turnover. Javon Ringer fumbled after a short pass from Hasselbeck with the ball popping straight to Bucs safety Tanard Jackson, and he took it 13 yards to the Tennessee 13. Freeman needed only 46 seconds before tossing a 3-yard pass to Mike Williams to tie it up.
It only got worse in the third quarter when the teams had four turnovers combined.
Johnson opened the half running well only to be stripped on his third carry after 13 yards by Aqib Talib. The Bucs had the ball all of three plays before Titans safety Jordan Babineaux stripped it from receiver Mike Williams after a catch. Talib picked off Hasselbeck and ran it back 27 yards for the TD and a 17-10 lead with 12:04 left in the third.
Blount had his second fumble after a short pass from Freeman when Titans rookie tackle Jurrell Casey stripped him of the ball and recovered at the Bucs 29. The Titans got nothing from the turnover. Adrian Clayborn sacked Hasselbeck, and the Titans went three-and-out.