The San Francisco 49ers managed just fine without Christian McCaffrey in their season opener, but Week 2 told a different story. The Minnesota Vikings led the 49ers from start to finish on Sunday afternoon at U.S. Bank Stadium, securing a hard-fought 23-17 victory and improving to 2-0, thanks in large part to a massive day from Justin Jefferson.
Jefferson set the tone early, catching a jaw-dropping 97-yard touchdown pass in the second quarter. The play was not only the longest catch of Jefferson’s career but also moved him past the 6,000-yard mark, matching the fastest pace in NFL history to reach the milestone. Jefferson finished with 133 yards and a touchdown on just four catches, though he exited the game late in the third quarter with a quad injury after colliding awkwardly with 49ers defensive end Nick Bosa. Postgame, Jefferson was diagnosed with a quad contusion and is being considered day-to-day.
Though George Kittle scored his first touchdown of the season on a 7-yard pass from quarterback Brock Purdy later in the second quarter, the Vikings went into halftime with a 13-7 lead after another field goal. The momentum swung further in Minnesota’s favor in the third quarter when Josh Metellus intercepted Purdy, leading to a 10-yard touchdown pass from Vikings quarterback Sam Darnold to Jalen Nailor, extending the lead to 20-7.
The 49ers responded with a gritty 12-play, 99-yard touchdown drive early in the fourth quarter, ignited by a fumble recovery after the Vikings’ Aaron Jones lost the ball at the half-yard line. Running back Jordan Mason capped the drive with a 10-yard touchdown run, pushing his rushing total over 100 yards for the game.
However, Darnold orchestrated a nearly seven-minute drive to close out the game, allowing kicker Will Reichard to notch his third field goal and all but seal the victory. While the 49ers quickly added a field goal of their own to make it a one-possession game, their failed onside kick attempt handed the Vikings the six-point win.
Brock Purdy had a solid performance, completing 28-of-36 passes for 319 yards, a touchdown, and an interception for the 49ers. Kittle, who was carted off the field due to dehydration but returned after receiving an IV, racked up 76 yards on seven catches, while Deebo Samuel recorded 110 receiving yards on eight receptions.
The 49ers were without Christian McCaffrey, who was placed on injured reserve on Saturday due to a calf injury and Achilles tendinitis. He will be out until at least Week 6. In his absence, Jordan Mason shined again, finishing with 100 rushing yards and a touchdown on 20 carries, following up his 147-yard, one-touchdown performance in Week 1.
For the Vikings, Darnold completed 17-of-26 passes for 268 yards, two touchdowns, and an interception. Ty Chandler added 82 rushing yards on 10 carries, while Jalen Nailor contributed 52 receiving yards and a touchdown to back up Jefferson’s explosive performance. After dominating the New York Giants 28-6 last week, the Vikings will look to maintain their undefeated streak next week when they host the Houston Texans, aiming for their first 3-0 start since 2016.