Updated

Minnesota's turnaround season already includes a decisive victory over a Super Bowl favorite, San Francisco.

The Vikings showed they can win a close one when they beat Jacksonville in the opener in overtime. Now they've proven they can pull out an ugly game, even with a passing game rendered impotent for an entire half.

Adrian Peterson and a relentless pass rush were enough for the Vikings to defeat Arizona 21-14 on Sunday and hand the Cardinals their third straight loss.

"It's just nice to rely on other guys to take over the game for you," said Christian Ponder, who completed only one pass for 4 yards after halftime and finished 8 for 17 for 58 yards and two interceptions.

Peterson ran 23 times for a season-high 153 yards and a first-quarter touchdown, and the Vikings (5-2) sacked John Skelton seven times to raise Arizona's league-leading total to 35 allowed this year.

"That's the formula for success if you're in a tough situation throwing the football," coach Leslie Frazier said. "Credit our guys for buying into that philosophy and finding a way to get a win."

Ponder threw a second-quarter touchdown pass to Percy Harvin, but the Vikings punted five straight times after Harrison Smith's 31-yard interception return for a touchdown. The last four were three-and-out possessions.

"The offense, they didn't always have it today. Let's just be honest," said defensive end Jared Allen, who had two sacks. "That's why it's a team game, and we were able to step up big."

John Skelton hit Andre Roberts for a 6-yard scoring pass with 1:48 left to pull the Cardinals (4-3) within one score, but they tried an onside kick and Peterson ended the game with a tough inside run for just Minnesota's second first down of the second half.

"At times it felt like we were getting momentum. But at times we made it tough on ourselves," Arizona coach Ken Whisenhunt said.

Like at the end of the second quarter after Ponder was picked off for a second time. Jay Feely's gift 47-yard field goal try was wide right.

"The Vikings do a really good job once they get a lead on you," said Larry Fitzgerald, who was limited to four catches for 29 yards. He added: "It's going to have to be a long sustained drive if you want to put points on the board."

The Cardinals had only one of those until the closing minutes, and it ended when Brian Robison sacked Skelton to force a fumble. Kevin Williams recovered at the Minnesota 16-yard line.

"I can go on and on about the possessions we had," Fitzgerald said.

Skelton went 25 for 36 for 262 yards and two turnovers, taking the job back from Kevin Kolb, whose damaged ribs will keep him out until at least Thanksgiving. Many of the throws he missed were way off the mark, but the lack of time he had in the pocket made it difficult to judge his performance.

Antoine Winfield delivered a jarring stop on fourth-and-1 at the Minnesota 17 midway through the third quarter when Skelton rolled out. Then with 6:16 left on fourth-and-10, Skelton was taken down near midfield in a swarm led by Williams.

After starting 4-0, the Cardinals have scored a total of 33 points. Their brightest spot on Sunday was LaRod Stephens-Howling, who scored on a short touchdown run after Ponder's first interception and finished with 104 yards on 20 carries and 45 yards on four catches.

"The objective of coming here was to win the game. So the numbers don't feel as good," Stephens-Howling said.

For the third straight year, Fitzgerald's visit to his hometown was ruined. The Cardinals haven't won here since 1977, when they played in St. Louis and the Vikings played outdoors. They've been inside since 1982, and the roof and the turf have long played to the defense's advantage when the visiting team is behind and passing becomes more important.

Against a leaky offensive line, Allen, Williams and Robison were even more dangerous. And there's no place they're more effective than here.

"If you win all of them at home, you've got eight wins. Then if you can split on the road, that's 12. I think that's what everybody around the league talks about," Williams said. "To accomplish that is huge. So if we keep doing what we're doing, we're on the right track."

NOTES: In the history of the NFL only Emmitt Smith (78), Jim Brown (76) and LaDainian Tomlinson (73) had more touchdowns than Peterson (67) in the first 80 games of their careers. ... The 5-foot-7, 185-pound Stephens-Howling had the first 100-yard game for the Cardinals since last November. Almost 82 percent of his season total came in this game, and Stephens-Howling is already the team's second-leading rusher. ... Cardinals RG Adam Snyder suffered a bruised quadriceps in the third quarter and didn't return. For the Vikings, TE John Carlson, their biggest free-agent signing who has only three catches for 8 yards this season, left the game with a concussion. ... Harvin returned the opening kickoff for a touchdown, but Marvin Mitchell was called for an illegal block in the back to wipe it out. ... Cardinals LB Daryl Washington had two sacks, two additional hits on Ponder and nine tackles.

___

Follow Dave Campbell on Twitter: http://www.twitter.com/DaveCampbellAP

___

Online: http://pro32.ap.org/poll and http://twitter.com/AP_NFL