"It's only one win, we know that," Titans coach Mike Munchak said. "But it's a great win for us at this point in the season when we needed a win to show people what we're all about."
Pittsburgh (2-3) lost its third straight road game this season and for the fifth time in six games dating to last season despite Ben Roethlisberger throwing for 363 yards and becoming the Steelers' career passing leader.
"We're not doing enough things to finish games in hostile environments," Pittsburgh coach Mike Tomlin said. "That's just the reality right now. Hopefully, it's just right now. We didn't do the job tonight. We defeated ourselves in some areas. We'll go back to work. Needless to say it's disappointing. We tip our caps to those guys."
Roethlisberger drove the Steelers into position to take the lead after the Titans tied it. Shaun Suisham, who already had connected from 29, 28 and 52 yards, had his 54-yard attempt fall short of the crossbar with 49 seconds left. Tomlin said Suisham hit the 52-yarder pretty good so he decided to give his kicker the chance to win a second straight game.
"I take full responsibility for the miss," Tomlin said.
Chris Johnson ran for 91 yards on 19 carries, and Hasselbeck finished with 290 yards passing.
"It feels good to win against a good opponent," said Hasselbeck, who started his second straight game in place of injured Jake Locker. "It feels good to win a close game."
The Steelers were up 20-16 when Lawrence Timmons picked off Hasselbeck's pass, but they had to settle for Suisham's third field goal after moving the ball only 14 yards. That put Pittsburgh up 23-16, and the NFL's fifth-ranked defense couldn't make it stand up.