The Vikings bounced back from consecutive losses with a 23-21 win over the Eagles on Sunday in Philadelphia.
Dan Bailey drilled a 52-yard field goal with 2:47 remaining to put the Vikings up nine points. It was Bailey's third field goal on a day when the highly accurate kicker also missed two.
Minnesota (2-2-1) never trailed in its return to where the magical 2017 season ended in the NFC Championship Game, but that didn't mean Philadelphia (2-3) wasn't going to make it interesting.
The Eagles responded to Bailey's kick by taking advantage of the middle of the field on a seven-play drive, going 75 yards for a touchdown in just 1:38.
Adam Thielen first bobbled but then recovered an onside kick attempt with 1:07 remaining to allow Kirk Cousins to line up in the victory formation.
Cousins finished 30-of-37 passing with 301 yards, a touchdown and no interceptions for a passer rating of 109.6.
Thielen led the Vikings with 116 yards and the touchdown on seven receptions. He had a long of 68 on the day and posted his fifth consecutive game with more than 100 receiving yards, becoming the first player in NFL history to have five such games to open a season.
The streak is tied for the fifth-longest by any player in NFL history.
Stefon Diggs had 10 catches for 91 yards, and Kyle Rudolph added five receptions for 41 yards.
Linval Joseph's 64-yard return of a fumble for a touchdown and a short scoring pass from Cousins to Thielen helped the Vikings build a 17-3 lead at halftime.
Joseph snagged the ball from midair after it was knocked away from Eagles quarterback Carson Wentz during a sack by Stephen Weatherly. The defensive tackle's return was the third-longest by a Vikings defensive lineman ever.
Danielle Hunter recorded a sack for the fifth consecutive game, extending his career-best streak and giving him 30.5 for his career, which is tied with Mario Williams for the fifth-most by a player younger than 24. Hunter will turn 24 on Oct. 29.
The Vikings had to scramble along the offensive line after left tackle Riley Reiff was sidelined. Minnesota moved Rashod Hill to left tackle and brought in rookie Brian O'Neill at right tackle.
Rookie Mike Hughes started at cornerback in place for Trae Waynes.
Minnesota manufactured 77 net rushing yards, despite being without Dalvin Cook. Latavius Murray had a season-best 42 yards on 11 carries.
Q1, 5:02 remaining
Vikings 3, Eagles 0
Dan Bailey kicks a 37-yard field goal [5 plays, 31 yards, 2:02]
Quick bounce back: After missing from 28 at the end of Minnesota's opening, Bailey was good to end the Vikings second possession. A 24-yard catch-and-run by Stefon Diggs on the first play of the drive moved the Vikings into Bailey's range from midfield.
Q2, 12:24 remaining
Vikings 3, Eagles 3
Jake Elliott kicks a 30-yard field goal [5 plays, 55 yards, 2:11]
Big gain before bad drop: Shelton Gibson caught a 48-yard pass from Carson Wentz to start the drive, but it was halted when Wendell Smallwood dropped a pass on a third-and-3.
Q2, 4:12 remaining
Vikings 10, Eagles 3
Linval Joseph returns a recovered fumble 64 yards for a touchdown (Bailey PAT)
Right place, right time: Stephen Weatherly forced a fumble by Carson Wentz during a sack. Weatherly and Joseph had just re-entered the game after a brief spell. Weatherly exploded through the line of scrimmage and popped the ball loose. It took a direct flight to the hands of Joseph, and the "Big Goon" had enough gas to reach the end zone.
Q2, 0:27 remaining
Vikings 17, Eagles 3
Adam Thielen catches a 3-yard touchdown from Cousins (Bailey PAT) [8 plays, 56 yards, 2:18 time of possession]
Taking advantage: Officials ruled that Michael Bennett roughed the passer during a sack of Cousins. Instead of facing a third-and-14 from the Philadelphia 31, the Vikings got a fresh set of downs at the 11 and scored two plays later.
Q3, 7:32 remaining
Vikings 20, Eagles 3
Bailey kicks a 22-yard field goal [6 plays, 91 yards, 2:01 time of possession]
Just like that: The Vikings quickly flipped field position on a drive that began at the Minnesota 5 with a 68-yard pass to Thielen and a 25-yard pass to Diggs on consecutive plays.
Q3, 2:57 remaining
Vikings 20, Eagles 6
Elliott kicks a 28-yard field goal [8 plays, 67 yards, 4:35 time of possession]
Move them back: Danielle Hunter sacked Wentz for a loss of 8 to stop the Eagles momentum after Philadelphia had gains of 16, 31 and 20 yards on three consecutive pass plays.
Q4, 12:05 remaining
Vikings 20, Eagles 14
Wendell Smallwood catches a 12-yard pass from Wentz (Smallwood conversion run) [10 plays, 66 yards, 4:14 time of possession]
Converted: Philadelphia converted a fourth-and-1 from the Minnesota 20 with an 8-yard pass to Alshon Jeffery and scored two plays later.
Q4, 2:47 remaining
Vikings 23, Eagles 14
Bailey kicks a 52-yard field goal [11 plays, 55 yards, 6:24 time of possession]
Methodical: The Vikings chewed up more than six minutes by blending runs by Latavius Murray and passes by Cousins before making it a two-score game.
Q4, 1:09 remaining
Vikings 23, Eagles 21
Zach Ertz catches a 7-yard pass from Wentz (Elliott PAT) [7 plays, 75 yards, 1:38 time of possession]
Cushion: With the two-score lead, Minnesota slugged off and allowed completions of 20 and 15 yards to the middle of the field on consecutive plays.
View images as the Vikings take on the Philadelphia Eagles at Lincoln Financial Field on Sunday.