Recap: Buffalo vs. Tennessee

Johnson, who struggled early on this season, now has three 100-yard rushing performances in three of his last four games for the Titans (7-5), who remained two games behind red-hot Houston for first place in the AFC South.

Matt Hasselbeck completed 16-of-25 passes for 140 yards for Tennessee, which has won two in a row.

"Buffalo is a tough place to come and get a win. We were able to do that," Hasselbeck said.

Ryan Fitzpatrick connected on 29-of-46 passes for 288 yards and a touchdown for the Bills (5-7), who have dropped five straight contests.

C.J. Spiller carried the ball 14 times for 83 yards and a score in defeat.

"The reason we lost was fundamentals," Bills head coach Chan Gailey said. "You've got to block, you've got to tackle. You've got to take care of the football. Those are the things that happened to us in this game and we didn't get the job done to win. You have to do those things fundamentally in order to be able to win."

After forcing the Bills to punt on the game's opening possession, Marc Mariani gave the Titans great field position with a 22-yard return. Tennessee had to settle for a 48-yard Rob Bironas field goal for an early 3-0 lead.

David Nelson and Brad Smith caught passes of 14 and 21 yards, respectively, on Buffalo's ensuing drive. With the ball on the 35, Spiller broke off a big run down the left sideline, but was stripped at the five by Michael Griffin. Spiller chased the bouncing ball and tried to jump on it before it went out of the end zone. The refs determined that the ball went out before Spiller gained control, but a review reversed the call. Spiller was awarded a fumble recovery in the end zone for a touchdown.

But Johnson responded with a 48-yard TD run to give the Titans a 10-7 margin with 5:50 left in the first quarter.

Fitzpatrick fumbled the football on 4th-and-3 from the Tennessee 34. Johnson helped moved the ball to the Buffalo 26. From there, Damian Williams and Ahmard Hall caught passes of 10 and 12 yards, respectively. Johnson capped the six-play march with a four-yard TD run for a 17-7 edge with 13:48 remaining until half.

The Bills came right back with a lengthy drive, but it only ended in a 27-yard Dave Rayner field goal.

After going three-and-out to start the second half, the Titans got the ball right back. Scott Chandler fumbled the ball after a 22-yard catch. Daniel Graham caught a 21-yard pass to put Tennessee at the Buffalo 27. Faced with a 4th-and-1 from the 18, Hall rumbled up the middle for two yards. An offensive holding penalty two plays later forced the visitors to settle for a 27-yard Bironas field goal with 6:45 left in the third stanza.

The Titans added to their lead early in the fourth. Nate Washington and Williams caught passes of 12 and 18 yards, respectively, to help move the ball into Buffalo territory. Bironas just made a 44-yard field goal to make it 23-10 with 8:55 to play.

Buffalo responded with an impressive 15-play, 80-yard scoring drive. The Bills converted two third downs and a pair of fourth downs on the march, which took almost six minutes off the clock. On 4th-and-goal from the 2, Fitzpatrick hooked up with Steve Johnson to cut the gap to 23-17 with 2:58 to play.

After forcing a punt, the Bills took over at their own 15 with 1:02 left and zero timeouts. Buffalo got the ball near midfield before stalling.