Once was nice, and twice was ice for Patrick Peterson.
The Vikings cornerback's first interception of Josh Allen occurred in the end zone and helped spark a furious fourth-quarter comeback by Minnesota.
His second of the day — in overtime and again in the end zone — secured a 33-30 victory for Minnesota, which claimed its seventh consecutive win, improved to 8-1 on the season and added an uber degree of legitimacy for the team's detractors to try to take down.
For the second week in a row, Minnesota overcame a 10-point deficit in the fourth quarter on the road.
Peterson sent the Vikings to the airport with another win by stepping in front of a pass intended for Gabe Davis with just more than a minute left in overtime. The play had started at the Minnesota 20, with Buffalo already within range to try to tie with a field goal.
Greg Joseph had given Minnesota the three-point lead with 3:42 remaining in the 10-minute period after an impressive drive by the Vikings that opened with a 60-yard drive that lasted 6:18.
Minnesota began chipping away at a 17-point lead by Buffalo late in the third quarter when Dalvin Cook ripped off an 81-yard touchdown after Buffalo had built a 27-10 edge with a field goal by Tyler Bass.
The Bills looked ready to answer and expand their lead but opted to throw on fourth-and-2 from the Minnesota 7-yard line. Peterson thought otherwise, nabbing his first pick of the day and returning it to the 34-yard line.
The Vikings built on momentum, eventually finishing a 66-yard drive with a 3-yard run by fullback C.J. Ham to make it a 27-23 game with 4:34 left in regulation.
Minnesota forced a quick punt and drove the ball again, but Kirk Cousins was stopped inches shy on a sneak on fourth-and-goal with 49 seconds remaining.
Allen fumbled the snap on the following play, and Eric Kendricks recovered the ball in the end zone for a 30-27 lead with 41 seconds left.
Buffalo quickly drove for a 29-yard field goal with two seconds remaining to force overtime.
Minnesota opened the extra session with gains of 10 and 9 by Cook. Justin Jefferson pulled in a 24-yard reception and drew a 19-yard pass interference penalty, but the Vikings settled for Joseph's 33-yard field goal, which proved to be enough.
Peterson has played Buffalo just four times in his storied career. He had an interception in each of the previous three games and lifted his total against the Bills to five.
Here are four more observations presented by Minnesota Eye Consultants, the Proud LASIK Partner of the Minnesota Vikings, followed by a scoring summary:
1. Jefferson & Diggs both bring it; Dalvin does, too
The Vikings drafted Justin Jefferson in 2020 with a pick received for sending Stefon Diggs to Buffalo.
Both star players brought their "A" games Sunday.
Jefferson finished with a career-best 193 yards on 10 catches. His day included receptions of 46 and a 22-yard score on Minnesota's first possession.
But the best was when the Vikings needed it most. Jefferson won a 50-50 ball as players were heading to the ground for a gain of 32 on a fourth-and-18 on the play after regulation's 2-minute warning. The majestic reception took the ball from the Minnesota 27 to the Buffalo 41.
Jefferson set a record for the most games with 100-plus receiving yards in a player's first three seasons with his 20th such performance in his by recording his 20th game with at least 100 receiving yards in his 42nd career game. He topped 19 by Randy Moss and Odell Beckham, Jr. Jefferson also recorded his seventh game with 150 or more yards, topping a record set by Moss and Lance Alworth for the most such games in a player's first three seasons.
Diggs finished with 128 yards on a game-best 12 catches, but the Vikings defense limited his longest gain to 25.
Diggs also had an incredible one-handed catch on his highlight reel.
The game also was special for Cook, who finished with 119 yards on 14 carries, and faced his younger brother James for the first time. Minnesota was able to limit James to 22 yards on five carries.
2. Cousins overcomes mistakes
Cousins finished 30-of-50 passing for a season-high 357 yards. He had the touchdown to Jefferson early before suffering a pair of picks.
The first was a deep shot overthrown down the middle of the field late in the first quarter.
The second was under duress and seemed to occur because of a bit of indecision between trying to get the ball to Jefferson or take a safety valve throw to Thielen near the line of scrimmage.
But when the game was on the line, Cousins found a way to be at his best and pinpoint key throws to Jefferson.
The Vikings dealt with the loss of T.J. Hockenson for a bit while the tight end was evaluated after a helmet-to-helmet hit that wasn't flagged. Minnesota also needed to lean on reserve Blake Brandel at left tackle after Christian Darrisaw left the game.
3. Defense remains about the ball
Kevin O'Connell promised his defense would be about the ball when he was hired. It was again Sunday, totaling four turnovers.
The Vikings allowed 486 yards in the shoutout but only three touchdowns to an explosive Bills offense.
Camryn Bynum recovered a fumble forced by Akayleb Evans that halted a Buffalo drive in Minnesota territory with 3:15 remaining.
Peterson's first interception stopped a drive that covered 67 yards, and the second one ended the game after 52 yards had been gained by Buffalo.
The least probable, however, was Kendricks' alert fumble recovery. He stormed in after former Bills defensive lineman Harrison Phillips created a surge at the line of scrimmage.
The Bills were trying to execute a QB sneak with the ball inside their own 1-yard line after a stand by their defense had kept Cousins just shy of the line to gain on fourth-and-goal.
Kendricks recovered the fumble in the end zone for a touchdown.
View postgame celebration photos following the Vikings 33-30 win in overtime vs. the Bills at Highmark Stadium.
4. Outlasting Allen
Allen turned in a gritty performance after an elbow injury last week.
He completed 29 of 43 passes for 330 yards with one touchdown, two interceptions and a passer rating of 78.6.
Allen did even more damage on the ground, leading the Bills with 84 yards on six runs.
But the Vikings defense was able to outlast the young star.
Despite losing Evans, who was already filling in for Cameron Dantzler, Sr., at the cornerback spot opposite Peterson, Minnesota was able to limit Allen to a long pass of 25.
Rookie Andrew Booth, Jr., logged his first significant action on defense, and Duke Shelley, who had been elevated from the practice squad Saturday, delivered a pass breakup on a throw to Dawson Knox in the end zone one play before Peterson's game-winner.
Scoring summary
Q1, 10:13 remaining
Vikings 7, Bills 0
Justin Jefferson catches a 22-yard pass from Kirk Cousins (Greg Joseph kicks PAT) [6 plays, 74 yards, 4:51 time of possession]
Gotta Jet: Jefferson converted a third-and-11 with a 46-yard reception on Minnesota's third offensive snap. Cousins found him for the score three plays later.
Q1, 8:10 remaining
Vikings 7, Bills 7
Devin Singletary rushes for 5 yards [Tyler Bass kicks PAT) [4 plays, 47 yards, 2:03 time of possession]
Field position and penalty: The Bills quickly answered thanks to a 43-yard kickoff return by Duke Johnson, and a reception by Stefon Diggs for a gain of 7 on which officials flagged Eric Kendricks for a horse-collar tackle for another 15. Singletary followed the penalty with a 21-yard run to the Minnesota 4-yard line and punched it in two plays later.
Q1, 1:04 remaining
Bills 14, Vikings 7
Singletary rushes for 1 yard [Bass kicks PAT) [10 plays, 70 yards, 5:09 time of possession]
Just enough: Josh Allen converted a third-and-11 with a 12-yard scramble to the Minnesota 9 two plays before Singletary's second touchdown of the game and season.
Q2, 12:53 remaining
Bills 17, Vikings 7
Bass kicks a 34-yard field goal [7 plays, 12 yards, 2:25 time of possession]
Points off turnover after avoiding one: The Bills took possession at the Minnesota 27 after a 35-yard return of an interception by Christian Benford. The Vikings made a stand to force a field goal but also nearly came up with a turnover two plays before Bass' kick. A pass by Allen was tipped by Za'Darius Smith and bounced off Diggs. The ball then hit off Jordan Hicks and headed toward Camryn Bynum. Diggs was able to get his arm back to the ball and knock it from Bynum.
Q2, 7:12 remaining
Bills 17, Vikings 10
Joseph kicks a 27-yard field goal [12 plays,46 yards, 5:41 time of possession]
Wrong direction: After a 20-yard pass to K.J. Osborn gave Minnesota first-and-goal at the 2, the Vikings lost 5 on a run by Alexander Mattison that was well defended by Buffalo. Officials flagged T.J. Hockenson for offensive pass interference in the end zone, creating a second-and-goal at the 17. Minnesota gained 8 back on a screen before a pass to Hockenson fell incomplete after officials allowed an extended hold of Hockenson by Dane Jackson.
Q2, 0:28 remaining
Bills 24, Vikings 10
Gabe Davis catches an 11-yard pass from Allen (Bass kicks PAT) [5 plays, 71 yards, 1:22 time of possession]
Quick strike: The Bills took advantage of Minnesota's failed decision to try passes on third-and-1 and fourth-and-1 at the Buffalo 28. Allen opened the series with a 25-yard scramble before finding Diggs and Davis for gains of 14 and 15. Another 6-yard pass to Diggs set up the Davis touchdown.
Q3, 1:51 remaining
Bills 27, Vikings 10
Bass kicks a 45-yard field goal [8 plays, 46 yards, 4:21 time of possession]
Another opportunity: The Bills were able to get a fresh set of downs on third-and-5 with a hard count that prompted a neutral zone infraction penalty against Za'Darius Smith. The biggest play on the drive was a 22-yard reception by tight end Dawson Knox to move the ball to the Minnesota 30.
View game photos of the Week 10 matchup between the Vikings and Bills at Highmark Stadium,
Q3, 1:34 remaining
Bills 27, Vikings 17
Dalvin Cook rushes for 81 yards (Joseph kicks PAT) [1 play, 81 yards, 0:17 time of possession]
Career long: Cook made his way to the edge with one man (Benford) to beat and was able to juke the rookie. It was the longest rush of Cook's career and longest run by a Viking since Adrian Peterson's 82-yarder on Dec. 16, 2012.
Q4, 4:34 remaining
Bills 27, Vikings 23
C.J. Ham rushes for 3 yards (Joseph misses PAT — hit right upright) [13 plays, 66 yards, 5:53 time of possession]
Major conversions: The Vikings picked up a fourth-and-1 with a 2-yard rush by Osborn and a fourth-and-6 with a 12-yard completion to Hockenson before setting up Ham's first rushing touchdown since Week 2 of 2017.
View pregame photos of Vikings players at Highmark Stadium on Nov. 13 ahead of the Week 10 matchup vs. the Bills.
Q4, 0:41 remaining
Vikings 30, Bills 27
Eric Kendricks recovers a fumble in the end zone for no gain (Joseph makes PAT)
Q4, 0:02 remaining
Vikings 30, Bills 30
Bass kicks a 29-yard field goal [5 plays, 69 yards, 0:39 time of possession]
No review: Officials ruled Davis caught a 20-yard pass to move the ball from the Buffalo from its 40 to the Minnesota 40, and the booth opted not to review the play. FOX replays showed the ball still moving as Davis hit the sideline.
OT, 3:42 remaining
Vikings 33, Bills 30
Joseph kicks a 33-yard field goal [12 plays, 60 yards, 6:18 time of possession]
Cook & Jefferson combo: Cook rushed for gains of 10 and 9 to start overtime, and Jefferson followed with a reception of 13 yards. Cousins put the ball on the money for a 24-yard reception by Jefferson on third-and-10 to move the ball to the Buffalo 2, but the Bills recorded a tackle for loss on a run and recorded a sack before an incompletion on third-and-15