See more of the story

LONDON — On Friday, Vikings linebacker Eric Kendricks thought back to his first experience playing in London in 2017 and summed up the British football fans thusly.

"It's just a bunch of NFL fans from across the UK, which is really cool," he said. "There's a ton of jerseys, whether [they're] of the teams that are playing or not."

Then, he added with a smile, "And everybody loves to watch the kicks."

If that's correct, the sellout crowd that witnessed the NFL's 100th international game on Sunday at Tottenham Hotspur Stadium got its money's worth.

There were plenty of kicks in the Vikings' 28-25 victory over the Saints. There were long ones and short ones, dubious field goals that might not have needed to happen and one that happened because a punt was faked. There was a missed extra point that kept the possibility of overtime in play.

And, at the very end, this fantastical display of American football, in all its sloppy glory, concluded with a double doink.

The Vikings slipped out of London with a win after Wil Lutz's 61-yard attempt — his second of more than 60 yards in the game's final three minutes — struck the left upright, then the crossbar. The Saints celebrated first, thinking the kick had gone through to force overtime. The Vikings celebrated last, as the ball hit the crossbar and fell short.

They headed home with a 3-1 record, at the end of a day where seven of their 11 drives ended with points. It appeared in the first quarter, and again in the second, as if the Vikings could pull away from a Saints team missing its starting quarterback, top running back, top receiver and starting left guard. Instead, what could have been a comfortable win turned into a thriller.

"It's great to leave here with a win; a lot of people put a lot of work into this week to make sure we were at our best," quarterback Kirk Cousins said. "As far as the game itself, we don't want to kick five field goals. We want to score touchdowns. I think that more success in the red zone would have enabled us to pull away a little bit. That was a disappointment."

A clinical first drive ended with Vikings tackle Christian Darrisaw flattening Saints linebacker Pete Werner while running back Alexander Mattison made the final move to turn a third-down tunnel screen into a touchdown from the Saints' 15.

The Saints punted after a pair of penalties on their first drive; the Vikings hit a series of pass plays targeting the Saints' linebackers, implementing a hurry-up offense that prevented New Orleans from substituting.

But the Saints' internal push produced a Kentavius Street sack that forced a Vikings punt, and after the Vikings' defense forced another three-and-out, Cousins dropped back for a pass that would change the complexion of the game.

Safety Tyrann Mathieu carried Justin Jefferson's route downfield before sitting on an out route for tight end Irv Smith Jr. Mathieu picked off the pass, and the Saints fashioned a 60-yard touchdown drive to tie the score.

The Vikings would score on their final two possessions of the first half, but a conservative series of decisions from coach Kevin O'Connell kept them from the touchdowns that might have put the Saints on the brink.

After a third-and-1 pass went through tight end Johnny Mundt's hands at the Saints' 10, O'Connell sent Joseph out for a 28-yard field goal instead of going for it on fourth down. The kick made it 10-7, and defensive tackle Dalvin Tomlinson and pass rusher Za'Darius Smith combined for a strip sack that gave the Vikings another chance to score before halftime.

But when a Cousins-to-Jefferson connection went for no gain with 56 seconds left, O'Connell did not call the Vikings' first timeout. The clock ticked down to 22 seconds before a second-down incomplete pass where Cousins was flushed from the pocket and hit in the face as he threw. Brian O'Neill was called for a false start on third-and-10, Cousins hit Smith for 7 yards with 16 seconds left, and the Vikings called their first timeout with three seconds to go, sending Joseph out for a field goal that made it 13-7 at halftime.

The Vikings' first drive of the second half reached the Saints' 6; O'Connell decided to send Joseph on for a field goal that made it 16-7. The margin wasn't big enough to keep the Saints from taking the lead.

With Cameron Dantzler out of the game because of an injury in the third quarter, Andy Dalton, starting in place of the injured quarterback Jameis Winston, targeted rookie Akayleb Evans on a go ball, hitting Marquez Callaway for 34 yards to the Vikings' 8. Latavius Murray's 1-yard touchdown run pulled the Saints within two points. Joseph's fourth field goal of the day came after Ryan Wright hit Jalen Nailor for a first down on a fake punt, then the Saints ran six times on a 75-yard drive to take a 22-19 lead early in the fourth quarter.

The Vikings' first touchdown of the second half came with the help of two crucial penalties: an illegal-hands-to-the-face call on Mathieu, and a 41-yard defensive pass interference penalty on cornerback Marshon Lattimore that put the Vikings on the Saints' doorstep.

The Vikings took the lead on Jefferson's first career rushing TD, but Joseph missed the extra point that would have put them up by four.

On the Saints' next drive, Dantzler made a diving breakup on Dalton's second-down deep ball for Chris Olave, knocking the pass away from the receiver with his outstretched hand.

"Loved it. Loved it," cornerback Patrick Peterson said. "It was a great play in a key moment of the game: Face-guarded him. He understood the ball was being thrown over his shoulder. Came back, found the ball. Found it late, but had to fight the receiver to get the ball off him. Unbelievable play."

The Saints stalled at the Vikings 42 and Lutz tied the game with his 60-yarder, giving the Vikings the ball with 1:51 to go. Jefferson won the final play of his daylong duel with Lattimore, beating him off the line of scrimmage as Cousins placed a perfect deep throw that put the Vikings on the Saints' 29.

"Seeing that one-on-one matchup, we've been saying it all week: If we get it, we're going to throw it deep," Jefferson said. "It was a great play, great call, great throw by Kirk."

Joseph hit from 47 to put the Vikings up 28-25 with 24 seconds to go. After Olave was ruled out of bounds on a throw from Dalton to try to get closer for Lutz, the Saints sent their kicker out.

"When it left his foot, I thought it was going in," O'Connell said. "Then on the first bounce I thought it was probably going in. Then, luckily, it did not."

The Vikings are still perfect in London, the only team to win in all three venues to host NFL games in this soccer-mad city. And as much as there is to fix, the team that lost eight one-possession games a year ago is now 3-1 after back-to-back high-wire wins: one by a last-minute touchdown, the other by a last-second double-doink.