MINNEAPOLIS -- The Minnesota Vikings are going to have to surpass 58 yards passing to stay in the playoff chase.
"The way we've tried to structure our team, the philosophy lends itself to winning games like this when you are not completing a lot of balls down the field in a league where so many say that's the way you have to win," coach Leslie Frazier said, adding: "That's a formula for success."
Ponder threw a second-quarter touchdown pass to Percy Harvin, but he had only one completion for 4 yards in the second half while the Vikings (5-2) punted five consecutive times. The last four were three-and-out possessions.
"To win an ugly game like this is huge. That shows how good of a team we are," said Ponder, who finished 8 for 17 for 58 yards and two interceptions.
One of them led to a second-quarter touchdown run by LaRod Stephens-Howling.
But Jay Feely's kick was wide right.
"I've got to be a lot smarter and make better decisions. That's for sure," said Ponder, who has seven turnovers in the past three games.
Two of them were turned into touchdowns last week at Washington.
Rookie Harrison Smith returned an interception 31 yards for a touchdown in the first minute of the second half, giving the Vikings enough of a cushion to withstand their offensive woes down the stretch.
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 Minnesota's second first down of the second half.
Seven games into his comeback from reconstructive surgery on his left knee, Peterson is in prime form.
"There's still a little missing. You guys probably think I'm crazy, but it is," Peterson said. "I feel good. I'm not going to complain. I'm just going to keep working and just keep getting better each week."
Skelton went 25 for 36 for 262 yards and two turnovers, filling in for the injured Kevin Kolb (damaged ribs).
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.
The Vikings sacked him seven times, giving the Cardinals an NFL-most 35 allowed this season. Antoine Winfield delivered a jarring stop on fourth-and-1 at the Minnesota 17 midway through the third quarter.
Then, with 6:16 left on fourth-and-10, Skelton was taken down near midfield in a swarm led by Kevin Williams.
"Nobody's ready to call it a season. We're going to get back to our winning ways, starting with San Francisco this week. It'll be another dogfight. NFC West at home. We've just got to be ready," Skelton said.
After starting 4-0, the Cardinals have scored a total of 33 points.
"We like when teams come out and want to throw the ball on us. We know we have good guys on the back end, and we know we have a heck of a good pass rush," said cornerback Chris Cook, who helped limit Cardinals star Larry Fitzgerald to 29 yards on four receptions.
NOTES: Peterson tied Robert Smith's franchise record with his 29th career 100-yard rushing game. ... The 5-foot-7, 185-pound Stephens-Howling finished with 104 yards on 20 carries, the first 100-yard game for the Cardinals since last November. ... The Vikings had only two first downs outside of their two touchdown drives. ... Cardinals right guard Adam Snyder suffered a bruised quadriceps in the third quarter and didn't return. For the Vikings, tight end John Carlson, who was their biggest free-agent signing but has just 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.
Copyright 2012 by The Associated Press