ORCHARD PARK, N.Y. — As expected, the Vikings sat starters on both sides of the ball in their preseason finale at Buffalo on Thursday.
But the Bills delivered the unexpected in the fourth quarter, erasing a 17-point deficit by scoring three touchdowns in the final 3:53 to win 27-23.
In addition to Kirk Cousins, the Vikings also opted to rest veteran QB Sean Mannion.
Kyle Sloter got the start and played into the third quarter. He finished 16-of-24 passing with 163 yards, one touchdown and an interception for a passer rating of 82.5.
He was replaced by rookie Jake Browning, who appeared for the first time since the preseason opener. Browning was 8-of-10 passing for 46 yards. He was intercepted on the final play of the game, a desperation heave, and finished with a passer rating of 46.2.
De'Angelo Henderson led Minnesota with 16 carries for 59 yards and a touchdown. Ameer Abdullah rushed five times for 21 yards and caught a 15-yard touchdown, and Mike Boone rushed six times for 19 yards. Khari Blasingame added 19 yards on seven carries.
Brandon Dillon led the Vikings with five receptions for 48 yards. Cole Hikutini added 45 yards on four catches.
The Vikings controlled the clock, possessing the football for a whopping 36:02 and had 25 first downs compared to just 15 for the Bills, but Minnesota was unable to convert possessions late to ice the game.
The Vikings finished the preseason 3-1 and are now 20-5 in exhibition games under Zimmer.
Minnesota will open the regular season by hosting Atlanta at U.S. Bank Stadium on Sept. 8.
Scoring summary
Q1, 5:57 remaining
Vikings 7, Bills 0
Ameer Abdullah catches a 15-yard pass from Kyle Sloter (Kaare Vedvik kicks PAT) [8 plays, 47 yards, 4:22 time of possession]
Bouncing back: After a holding penalty negated a 23-yard touchdown pass to Brandon Dillon, the Vikings responded with a 7-yard run by Abdullah and an 11-yard reception by Cole Hikutini to set up the scoring pass to Abdullah.
Q1, 1:05 remaining
Vikings 7, Bills 3
Stephen Hauschka kicks a 54-yard field goal [10 plays, 39 yards, 4:52]
Drive halter: After the Bills converted a third-and-11 and a third-and-1, the Vikings were able to get tackle for no gain, followed by a 2-yard tackle for loss by Anree Saint-Amour to put the Bills behind the chains.
Q2, 0:43 remaining
Vikings 10, Bills 3
Vedvik kicks a 27-yard field goal [16 plays, 71 yards, 4:58]
Feeding the tight ends: TEs Brandon Dillon and Cole Hikutini combined for 41 yards on four receptions from Sloter. Each helped convert a third-and-8-plus on a catch.
Q3, 8:58 remaining
Vikings 10, Bills 6
Chase McLaughlin kicks a 54-yard field goal [12 plays, 40 yards, 6:02]
Modest gains: The Vikings limited the Bills to 4 or fewer yards on six plays during the drive.
Q3, 5:40 remaining
Vikings 13, Bills 6
Dan Bailey kicks a 54-yard field goal [7 plays, 39 yards, 3:18]
Explosive runs: De'Angelo Henderson rushed for a gain of 17, and Davion Davis followed with a gain of 10 on an end around, quickly moving the Vikings from their own 31 to the Buffalo 42 in two plays.
Q4, 10:17 remaining
Vikings 20, Bills 6
Henderson runs for a 3-yard touchdown (Bailey kicks PAT) [14 plays, 80 yards, 8:35]
Hot start: Jake Browning completed all seven passes for 35 yards and converted a fourth-and-1 with a rush.
Q4, 7:41 remaining
Vikings 23, Bills 6
Bailey kicks a 43-yard field goal [4 plays, minus-8 yards, 3:48]
Points off turnover: The Vikings were able to capitalize on a fumble forced by Karter Schult that was recovered by Anree Saint-Amour at the Buffalo 17.
Q4, 3:53 remaining
Vikings 23, Bills 13
Victor Bolden recovers a Tyree Jackson fumble in the end zone (McLaughlin kicks PAT) [12 plays, 75 yards, 3:48]
NOTE: The play was later changed to a 6 yard scramble by Jackson.
Scramble drill: Jackson converted a fourth-and-9 with a 13-yard scramble. He scrambled again on second-and-6 and was initially ruled to have gained 5 yards before fumbling near the goal line.
Q4, 3:21 remaining
Vikings 23, Bills 20
Marcus Murphy returns a punt 79 yards for a touchdown (McLaughlin kicks PAT)
Q4, 0:08 remaining
Bills 27, Vikings 23
David Sills catches an 8-yard pass from Jackson (McLaughlin kicks PAT) [6 plays, 57 yards, 0:53 seconds]
View images as the Vikings take on the Buffalo Bills in Buffalo on Thursday night.