ORCHARD PARK, N.Y. (AP) — Patrick Peterson intercepted Josh Allen with 1:12 left in overtime to finally end a sloppy, yet thrilling back-and-forth game between two of the NFL’s best teams, and the Minnesota Vikings completed their rally from a 17-point second-half deficit to beat the Buffalo Bills 33-30 on Sunday.
The Vikings took advantage of three turnovers by Allen in the fourth quarter and overtime, pulling ahead late in regulation when he mishandled a snap and fumbled in the end zone.
Greg Joseph put the Vikings ahead to stay by hitting a 33-yard field goal with 3:42 left in overtime. The game didn’t end until Allen, facing second and 10 at Minnesota’s 20, forced a pass over the middle intended for Gabe Davis, only to have Peterson intercept it a few yards into the end zone, his second pick of the day. Peterson ran out and slid to the turf.
Kirk Cousins threw for 357 yards, and Justin Jefferson had a monster game with 10 catches for 193 yards for the NFC North-leading Vikings (8-2). Minnesota rallied to win when trailing with 2 1/2 minutes or less remaining in regulation for the fifth time this season.
The Bills (6-3) dropped out of the AFC lead with their second straight loss, this one a thriller that featured several momentum-turning plays in the final minute of regulation alone.
The Bills, clinging to a a 27-23 lead, appeared to have won when they stopped Cousins for no gain on fourth-and-goal from the half-yard line with 49 seconds remaining.
On the very next play, Allen muffed the snap from center Mitch Morse, and Minnesota linebacker Erik Hendricks dived into the end zone to recover it for a touchdown.
Allen, who was questionable to play this week with an injured throwing elbow, engineered a five-play, 69-yard drive to set up Tyler Bass’ 29-yard field goal with 2 seconds remaining.
But his mistakes were key to this defeat.
With the Bills ahead 27-17, Allen threw his first interception on fourth-and-goal at Minnesota’s 2 with 10:27 remaining. Rolling to his right, Allen inexplicably threw back across his body directly to Peterson, who returned the ball to Buffalo’s 34 and was tackled by Allen. The frustrated quarterback lay face down on the field for nearly a minute, and kicked both of his feet on the turf before finally getting up.
Though the Vikings scored on the ensuing drive, with C.J. Ham bulling up the middle on a 3-yard run, Joseph missed the extra point.
Then it was Jefferson’s time to rescue the Vikings. He made an incredible one-handed, 32-yard grab on fourth-and-18 on Minnesota’s final drive of regulation. Jefferson reached back to get one hand on the ball and rip it out of the grasp of Bills defender Cam Lewis.
Selected with the 2020 first-round pick the Vikings acquired in a trade that sent receiver Stefon Diggs to the Bills, Jefferson became the NFL’s first player to top 100 yards receiving 20 times in his first three seasons, breaking a tie with Odell Beckham Jr. and former Minnesota great Randy Moss.
Dalvin Cook sparked the comeback by scoring on an 81-yard run to cut Buffalo’s lead to 27-17 with 1:34 left in the third quarter. Cook finished with 119 yards rushing on 14 carries.
Devin Singletary rushed for two first-quarter TDs as the Bills appeared to take control by building a 24-10 halftime lead.
Failing to protect the ball has been a season-long issue for Allen. He has turnovers in eight of nine outings, with 10 interceptions — two more than he had all last season. He’s also lost three fumbles, matching his total last year.
Allen finished 29 of 43 for 330 yards passing and an 11-yard touchdown pass to Davis.
Allen didn’t make an appearance on the field until emerging from the tunnel for pregame warmups, about 45 minutes before kickoff. He and backup Case Keenum both took practice snaps.
Vikings: Akyayleb Evans, starting in place of Cameron Dantz, who was placed on IR, did not return after sustaining a concussion in the first half. … LT Christian Darrisaw was escorted up the tunnel to be evaluated for a concussion in the fourth quarter.
Bills: LB Tremaine Edmunds did not return after a groin injury in the first half. … WR Jake Kumerow hurt an ankle, ending his day.
Vikings: Host Dallas next Sunday.
Bills: Host Cleveland next Sunday.