Postgame snapshot from Mall of America Field, where the Vikings beat the Cardinals 21-14.

Good news: Adrian Peterson ran like an animal all afternoon. Against an Arizona defense that came into the day allowing 113 rushing yards per game, Peterson rushed for 153 yards on 23 carries. Forty-six of those yards came on the Vikings' first scoring drive, a first-quarter march that saw Peterson ram his way into the end zone from 13 yards out. That was his first touchdown since Week 1. On the defensive end, Brian Robison sparked a feisty effort with three sacks. On his first sack, Robison forced a fumble on Cardinals quarterback John Skelton which Kevin Williams recovered. That ended a 14-play, 75-yard Arizona drive that ate up more than 8 minutes of game time but ultimately went scoreless. Rookie Harrison Smith also delivered an interception return for a touchdown early in the second half.

Bad news: Christian Ponder took a step backwards, failing to ignite the offense at all. Ponder (8-for-17, 58 yards, one TD) threw a pair of ill-advised interceptions deep in his own territory. The first came as he sprinted right to escape pressure. But his throw to Kyle Rudolph was high and behind the tight end and easily picked off by linebacker Paris Lenon at the 16. That allowed Arizona to put together a four-play TD drive to even the score at 7. Late in the half, Ponder again made a bad throw in the face of pressure, picked off at the 30 with 5 seconds left. Arizona's Jay Feely missed a 47-yard field goal as the first half expired. But that shouldn't take Ponder or the coaching staff off the hook for their clock management and play calling in the final minute of the half.

Extra point: Peterson now has 29 100-yard rushing games for his career, matching Robert Smiths's franchise record. Through seven games this season, Peterson is averaging 19 carries and 93 yards.

Next up: The Vikings face a quick turnaround and will host Tampa Bay on Thursday night. The Buccaneers lost to New Orleans at home 35-28.