Cousins threw for 373 yards and three touchdowns against the league’s top-ranked pass defense, Dalvin Cook ran for 140 yards and a score and the Vikings finally solved their second-half offensive woes. Adam Thielen had a number of big catches, finishing with 11 receptions for 126 yards and a touchdown.
The Vikings (3-3) had not scored a second-half touchdown in their previous four games, but Cook broke the streak with a 16-yard touchdown run to give the Vikings the lead and Cousins added a 5-yard touchdown pass to Thielen.
But two missed field goals by Greg Joseph kept the Panthers (3-3) in it.
Sam Darnold finished 17 of 41 for 207 yards with one touchdown and two turnovers and nearly pulled off a wild comeback.
After Joseph missed a 50-yard field goal, Zane Gonzalez connected on a short field goal to cut the lead to 8.
Darnold hit Ian Thomas down the seam for a 41-yard gain on fourth-and-10 from the Carolina 4. Then Darnold found D.J. Moore, who had dropped a pass on the previous play, for a 25-yard gain down the left sideline to keep the drive alive. Darnold capped the drive with a 7-yard TD pass to Robby Anderson and threw a shovel pass to Tommy Tremble for the 2-point conversion to tie the game at 28 with 42 seconds left.
But the Vikings won the coin toss and Cousins quickly moved his team into scoring range, finding Osborn, who beat safety Sean Chandler and reached the ball across the goal line to score the winner.
The Panthers might have known it was going to be a tough day when Darnold threw downfield to Anderson on a comeback route on the first play from scrimmage and was intercepted by Bashaud Breeland.
It was the first of many Carolina miscues.
Carolina’s first half was marred by dropped passes, mental errors and poor clock management. On their final drive of the second quarter, the Panthers were called for a delay of game after taking a timeout to set up a play. Darnold tried to call a second timeout as the play clock wound down, but NFL rules prohibit back-to-back timeouts. The comedy of errors continued on the next play as the Panthers were flagged for holding, costing them a chance at a go-ahead field goal.
Vikings: CB Patrick Peterson was helped off the field with a lower body injury with 2:03 left in the fourth quarter.
Panthers: Wide receiver Terrace Marshall left the game in the first half after taking a vicious hit from Vikings safety Xavier Woods, who was flagged for an illegal hit. WR Alex Erickson left in the second half with a concussion.
Vikings: Have a bye next weekend, then host the Cowboys on Oct 31.
Panthers: Visit Giants on Sunday.