Monday Night Football: Kirk Cousins throws for 378 as Vikings beat 49ers 22-17

Kirk Cousins' primetime struggles are well known, but on Monday Night Football, the Vikings quarterback was ready for primetime.

Cousins threw for 378 yards and two touchdowns as the Vikings held off the 49ers 22-17.

Minnesota improved to 3-4, while the 49ers fell to 5-2.

It's the 49ers' second consecutive loss to a team with non-winning record, with the two losses by a total of seven points. They were without left tackle Trent Williams and receiver Deebo Samuel on Monday night, but that doesn't explain the 452 yards the defense allowed or the three turnovers the offense had.

Christian McCaffrey lost a fumble on the opening drive, a foreshadowing of the night in store for the 49ers. It ended, appropriately enough, with Brock Purdy's second interception.

Vikings kicker Greg Joseph, who made field goals of 21, 20 and 54 yards, missed a 50-yarder wide right with 1:11 left. That gave the 49ers the ball at their own 40.

The 49ers reached the Minnesota 40 with 34 seconds left before Purdy threw a pass that was picked by safety Camryn Bynum.

The Vikings had only six takeaways before Monday night.

Cousins was at his best, completing 35 of 45 passes, with Jordan Addison catching seven for 123 yards and two touchdowns. Tight end T.J. Hockenson caught 11 passes for 86 yards.

The 49ers had 325 yards and punted only once, but the three giveaways and a missed 40-yard field goal by Jake Moody left them wanting.

McCaffrey, who was playing with an oblique injury, scored on a run of 3 yards and a catch-and-run of 35 yards. He has scored in 16 consecutive games and has 24 touchdowns in his first 21 games with the 49ers.

Purdy was 21-of-30 for 272 yards with a touchdown and two interceptions, with the picks coming on the final two possessions of the game with the 49ers needing a touchdown for the go-ahead score.