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.