It appeared from the start that Sunday was not the Saints’ day. The Saints fought back, but in the end, the Vikings overcame their painful playoff history with a 29-24 win.

This one was a tale of two halves, and there was plenty of drama with four lead changes in the final three minutes. The Vikings took a 7-0 lead on their first offensive possession and the defense kept Drew Brees off rhythm in the first half. After the first quarter, Brees was 1-of-6 passing for three yards and a pick.

The Vikings shut the Saints out entirely in the first half, taking a 17-0 lead into halftime. The Vikings didn’t allow a single third down conversion to New Orleans until the third quarter. But then the Saints came surging back.

New Orleans finally got on the board with a 14-yard Brees touchdown pass to Michael Thomas with 1:18 left in the third. Then the Saints defense responded on the following drive when safety Marcus Williams picked off a duck from Case Keenum. The Saints turned Keenum’s mistake into seven points, pulling within three of the Vikings early in the fourth quarter.

Everything was swinging in the Saints’ favor. Then Sean Payton derailed momentum with two bad challenges in a row, and two blown timeouts as a result. A bizarre decision to run a trick play with Willie Snead at quarterback on third-and-1 with 9:12 left in the fourth did further damage.

In the end, special teams nearly saved the Saints. Taysom Hill, who Sean Payton sees as potentially the quarterback of the future for the Saints, blocked a Vikings punt with 5:28 remaining. Drew Brees turned it into a touchdown, and the Saints took a 21-20 lead — their first of the game.

But the Vikings weren’t done. A 53-yard field goal gave them the lead back. It also left Drew Brees and company time to get more points on the board. And they did, with a 43-yard Wil Lutz field goal. But a thrilling last-minute Stefon Diggs touchdown sealed the win for Minnesota.

The Vikings strike first

Minnesota wasn’t fooling around. Their first possession was an eight-play, 55-yard drive that ended with a 14-yard Jerick McKinnon touchdown.

McKinnon takes the toss from Keenum in the backfield and he’s got some great blocking to pave an easy path to the end zone.

Brees gives it back to the Vikings with an arm punt

The Saints were backed up deep in their own territory with just over a minute left in the first quarter. Brees sailed a pass intended for Ted Ginn Jr., but Vikings safety Andrew Sendejo was the one who snagged it.

The Vikngs got the ball at their own 42-yard line, which put them in prime position to score again.

Vikings chewed up the Saints defense in the first half

The Saints secondary has been much improved this season. But Marshon Lattimore got eaten alive on this big-time catch from wide receiver Adam Thielen.

Latavius Murray got into the end zone. The Vikings celebrated accordingly with a game of freeze tag.

Case Keenum won.

Vikings forced Drew Brees into mistakes

Vikings finally give up a touchdown

Momentum shifted after the half. The Saints came out and forced a Vikings punt. Then New Orleans finally got on the board with a 14-yard dime from Drew Brees to Michael Thomas.

The last time this Vikings defense allowed a passing touchdown was Week 14 against the Carolina Panthers.

The Saints tacked on another touchdown, too, on a 3-yard pass from Brees to Thomas.

Sean Payton blows it with two bad challenges

Payton challenged a Vikings completion that Jarius Wright clearly caught for a 27-yard gain and a first down. Officials upheld the ruling.

Then three plays later, that red flag flew again. Payton challenged an incomplete pass from Keenum, hoping for a fumble.

It wasn’t. But his challenges cost the Saints momentum, and even worse, two timeouts in a close game.

This Willie Snead trick play was a bad idea

Say you’ve got a third-and-1 on your own 36-yard line with just over nine minutes left in a close game that’s a win-or-go-home situation. Do you replace your veteran quarterback with a wide receiver for a trick play at that point?

Sean Payton apparently does. It didn’t work.

The Saints finally take the lead

A blocked punt gave the Saints great field position and a chance to take over with 5:28 left in the game. Brees took advantage, hitting Alvin Kamara for a 14-yard score.

It gave the Saints a 21-20 lead. But the Vikings weren’t done.

The Vikings take the lead back with a field goal

A 53-yarder gave the Vikings a 23-21 lead back. But they left Drew Brees 1:29 to play with.

It took a fourth-and-10 conversion, but Brees hit Willie Snead to get the Saints into field goal range. New Orleans kept moving the ball to take time off the clock. The Saints were able to get in position for Wil Lutz to hit a 43-yarder to take a one-point lead.

But the Vikings pulled it off

Case Keenum hit Stefon Diggs for the 61-yard game-winning touchdown.

The Saints almost overcame the rough start and the late-game missteps. But the Vikings came out on top. Next up for the Vikings is a trip to Philadelphia to take on the Eagles in the NFC Championship.

The Vikings are one win away from breaking a Super Bowl curse