Trailing by 14 points midway through the fourth quarter at the Minnesota 37, John Skelton went back to pass and saw the pocket quickly collapse on a fourth-down play.
Kevin Williams finished one of Minnesota's seven sacks, giving the ball back to the Vikings near midfield.
That was one of many missed opportunities for the Arizona Cardinals, who fell 21-14 to Minnesota on Sunday for their third straight loss after starting the season 4-0.
The Cardinals have scored 33 points in the three losses after scoring 91 in their first four games.
"It really hurts when you come into this place, which is a tough place to play, against a good team and you play hard enough and you have missed opportunities to make plays to win and you don't get it done," Cardinals coach Ken Whisenhunt said.
Arizona intercepted the Vikings' Christian Ponder twice.
The Cardinals held the Vikings to 56 total yards in the second half. LaRod Stephens-Howling broke 100 yards rushing.
For all the assistance given Skelton and the Cardinals passing attack, they failed to take advantage.
"We moved the ball up and down the field. Offensively, we were able to run, pass. It was a play here, a play there that stalled a drive and kept us from getting into the end zone," said Skelton, who went 25 for 36 for 262 yards and two turnovers, in place of the injured Kevin Kolb.
Too often, Skelton had little time to set up in the pocket and was forced to throw on the run. Arizona has allowed an NFL-high 35 sacks, including 29 in the past four games.
"I'd rather give up nine sacks and win games rather than give up three and keep losing. We just need to find some kind of balance," left guard Daryn Colledge said.
"I thought for the most part we did pretty good today, but it was one of those things where we shot ourselves in the foot making drives. You can't do that, especially against a defense like this. We knew they could rush the passer. We knew they can shut offenses down."
Still, 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 instead of trying to force another punt and Adrian Peterson ended the game with a tough inside run for just Minnesota's the second first down of the second half.
Minnesota (5-2) was held to just 209 yards of offense — 153 rushing by Peterson — and went three-and-out four times in the second half.
However, the Vikings took a 21-7 lead less than a minute into the third quarter when Skelton stepped up under pressure, looked as if he was going to run, and instead threw an interception that Harrison Smith returned 31 yards for a touchdown.
"In that situation, it's better to run and get what you can," Skelton said.
Ponder finished 8 for 17 for 58 yards and two interceptions.
"Our defense played lights out, and when we put them on a short field it's on the offense when they score," Skelton said.
Jay Feely missed a 47-yard field goal right after Sam Acho picked off Ponder with 5 seconds left before halftime. And a 14-play drive ended at the Minnesota 19 when Skelton fumbled on a sack by Brian Robison.
"You've got to put your foot on their throat when you get them down and tired, especially in the red zone," center Lyle Sendlein said.
The schedule doesn't get easier for Arizona, which hosts division-leading San Francisco next Monday, then goes to Green Bay. After their bye, the Cardinals travel to unbeaten Atlanta.
"Every game is a crucial game. Every game is a must win. The season doesn't last very long," Colledge said. "It's one of those things where we're still in the hunt for our division. That's important to us."
NOTES: RG Adam Snyder left the game in the third quarter with a bruised quadriceps and did not return. He was limping after the game. ... Stephens-Howling is the first 100-yard rusher for Arizona in 12 games, dating to Nov. 27, 2011, when Beanie Wells had 228 yards at St. Louis.
Online: http://pro32.ap.org/poll and http://twitter.com/AP_NFL