LeSean McCoy's first seven carries were for minus-2 yards.
His next two traveled 82 yards and crossed the goal line twice.
McCoy, his surgically repaired left thumb in a splint, started terribly Sunday against the Jacksonville Jaguars. But he turned into a slasher right before halftime and lifted the Bills to a 28-21 victory over the Jacksonville Jaguars.
The lead changed five times in the second half, but the Bills landed several haymakers to keep their postseason hopes legit.
McCoy scored a 7-yard touchdown with 20 seconds left before halftime and went 75 yards for another touchdown on the first play of the second half.
Sammy Watkins returned and made three catches for 80 yards, picking up 62 yards to set up a Tyrod Taylor touchdown scramble in the third quarter.
Taylor threw the eventual winning touchdown -- a 16-yard throw into the end zone for Justin Hunter -- with 10:46 left in the game. Taylor completed 12 of his 18 throws for 166 yards and ran for 38 yards.
Buffalo's defense was prone to lapses, too. That's what kept the game so tight.
Jacksonville running back Chris Ivory ran for 44 yards in the first quarter but left the game with a hamstring injury. Allen Hurns scored on a 12-yard reception at the start of the fourth quarter but injured his hamstring diving for the pylon.
Jaguars running back T.J. Yeldon was coming back from an ankle injury, so quarterback Blake Bortles picked up the ground slack. Bortles ran eight times for 81 yards and was 13 of 26 passing for 126 yards and two touchdowns.
Jacksonville reached Buffalo's 40-yard line with about three minutes left but lost the ball on downs and never got it back.