Derrick Henry scored three touchdowns and defensive lineman Jeffery Simmons stuffed Josh Allen for no gain with 21 seconds left on Monday night as the Tennessee Titans held off the Buffalo Bills 34-31 in Nashville.

Henry's 13-yard scoring run with three minutes left marked the game's seventh lead change. The lead almost changed hands again on Isaiah McKenzie's 101-yardkickoff return after Henry's score, but the apparent touchdown was erased by a holding penalty.

Buffalo (4-2) drove to the three-yard line and turned down a straightforward field goal that might have forced overtime.

Buffalo opened the scoring with a pair of Tyler Bass field goals. He hit from 24 and 28 yards for a 6-0 lead at the 11:36 mark of the second quarter, capping lengthy drives that saw the Bills fail to convert red-zone penetration into touchdowns.

Tennessee edged ahead when Henry ripped off a 76-yard touchdown run to kick off the game's remainder that featured the teams swapping the lead at a dizzying clip.

Before the quarter ended, Allen found Stefon Diggs and Cole Beasley for touchdown strikes of 14 and 29 yards, respectively, while the Titans got a 43-yard field goal from Randy Bullock and a four-yard scoring run by Tannehill.

Leading 20-17 as the third quarter started, Buffalo got a 52-yard field goal from Bass at the 10:49 mark, but Henry powered in from the 3 with 4:23 remaining in the period.

The Bills grabbed a 31-24 advantage when Allen found Tommy Sweeney for a1-yard touchdown with 27 seconds left in the quarter, then connected with Dawson Knox for a two-point conversion.