CHARLOTTE, N.C. (AP) — Jonathan Stewart ran for 103 yards and three touchdowns, and the Carolina Panthers snapped the Minnesota Vikings' eight-game winning streak with a 31-24 victory Sunday.

Cam Newton threw for 137 yards and a touchdown and ran for 75 yards as the Panthers (9-4) racked up 216 yards on the ground against the league's No. 2 ranked defense to pull even with the Saints atop the NFC South standings.

Carolina sacked Case Keenum six times and forced three turnovers to keep the Vikings (10-3) from clinching the NFC North division title.

After the Panthers squandered an 11-point fourth quarter lead, Newton broke free of the pocket and raced 62 yards for a key first down with 2 minutes remaining. Stewart scored his career-high third TD when he jumped over the line of scrimmage, reaching the ball across the goal line for a 31-24 lead.

Minnesota couldn't manage a first down on its final drive and turned the ball over on downs.

The Panthers seemed in control midway through the fourth quarter leading 24-13 after Newton made an off-balance throw to Devin Funchess for an 18-yard touchdown, and Mario Addison's strip-sack set up Graham Gano's field goal.

But the Vikings came charging back to tie it as Keenum hooked up on a 52-yard scoring strike on a crossing route. Blake Bell added 2-point conversion catch to cut the lead to three.

On Carolina's next possession, Vikings safety Andrew Sendejo intercepted Newton on a ball that sailed off the hands of Christian McCaffrey and returned it to the Carolina 6. But Carolina's defense had a huge stop, holding the Vikings to a field goal leaving the game tied with 3:07 left.

More From KROC-AM