Adrian Peterson rumbled for 171 yards and a touchdown as host Minnesota snapped a two-game losing streak.

Second-year quarterback Christian Ponder rebounded from a string of mediocre outings by throwing for 221 yards and a pair of touchdowns as Minnesota (6-4) completed a season sweep of Detroit (4-5).

Peterson, who entered as the league's leading rusher, went over 1,000 yards for the fifth time in his career and put his team in control with a 61-yard touchdown for a 31-17 lead with 8:06 to play.

The Vikings never trailed as Ponder threw a 3-yard TD pass to rookie Jarius Wright to open the scoring and stretched the lead to 24-10 with a 20-yard fourth-quarter strike to tight end Kyle Rudolph, who had seven catches for 64 yards and the touchdown.

Matt Stafford threw for 329 yards and three second-half touchdown passes, the second a 1-yarder to Titus Young to cut the deficit to 31-17 with 11:32 left, but Peterson broke free just over three minutes later to halt Detroit's two-game winning streak. Lions wideout Calvin Johnson had 12 catches for 207 yards and a TD.

GAME NOTEBOOK: The Vikings were without WR Percy Harvin (ankle), who entered the week leading the league in receptions. ... Johnson scored just his second TD of the season and registered his 26th career 100-yard game. Stafford's scoring pass to Johnson was the 70th of his career, moving him past Gary Danielson into fourth place on the franchise's all-time list. ... Wright, a rookie from Arkansas, appeared in his first game and had three catches for 65 yards.