MINNEAPOLIS -- It was nothing less than stunning, given that the San Francisco 49ers already were being considered NFL royalty and the Minnesota Vikings court jesters.
But here it is: The San Francisco defense, so stout, was attacked, successfully, from the opening whistle. The Vikings defense, for two years an Achilles heel, stood tall, making stops, taking away the ball. And Christian Ponder? Well, the young Vikings quarterback was simply amazing.
The result: A 24-13 victory at Mall of America Field for the Vikings, who took the first punch, then showed the ability to counter punch while pulling out a victory that will have the experts scratching their heads for a while.
The Vikings, who barely beat Jacksonville in the season opener and lost at Indianapolis last week, never trailed while handing the 49ers (2-1) their first loss of the young season.
Ponder completed 21 of 35 passes for 198 yards with two touchdowns, both to tight end Kyle Rudolph. He also ran the ball four times for 38 yards, including a 23-yard run for a touchdown that gave the Vikings a 14-3 first-half lead with the first rushing touchdown allowed by San Francisco this year.
Running back Adrian Peterson ran 25 times for 86 hard-earned yards and the Vikings totaled 146 rushing yards against one of the NFL's best rushing defenses. Percy Harvin had nine catches for 98 yards, and four other receivers had two or more receptions.
On the other side, the Vikings defense forced two key turnovers and held the 49ers to field goals on two key drives that reached the Red Zone.
Confident? San Francisco coach Jim Harbaugh was. His team won the opening toss, and he deferred to the second half, preferring to have his defense set the tone.
It didn't quite work that way. Ponder, who had his best game as a pro, confidently led the Vikings on a 16-play, 82-yard scoring drive that ended with his 1-yard toss, off his back foot, to Rudolph on fourth-and-goal. Ponder was five-of-seven for 48 yards on the drive, which ate up half of the first quarter.
The 49ers pulled within 7-3 on David Akers' 29-yard second quarter field goal after a long San Francisco drive was stopped at the Vikings' 11.
Then the Vikings drove again, 80 yards in 11 plays, ending with Ponder's electric 23-yard scramble up the middle for a TD that made it 14-3 with less than six minutes left in the half.
And Minnesota wasn't done. The 49ers drove to the Vikings' 25 where, on fourth down, Akers' field goal attempt was blocked by Leroy Guion, giving the Vikings the ball at the 49ers' 33 with 47 seconds left. Ponder converted on third down twice, driving the Vikings 32 yards to set up Blair Walsh's 52-yard field goal as time in the half expired.
The Vikings had to expect some push back. And, after halftime, the 49ers provided it.
Kyle Williams returned the second half kickoff 94 yards to the Vikings' 14, but the Minnesota defense held again, forcing a field goal. But, after a three-and-out by Minnesota, Smith -- who finished the game 24-for-35 for 204 yards and a touchdown -- completed all six of his passes, marching the 49ers 86 yards for a touchdown on Smith's 1-yard toss to tight end Vernon Davis. The extra point made it 17-13 and the 49ers had the momentum.
Or so it seemed.
Because the Vikings answered. Taking advantage of some key 49ers penalties, Ponder hit on six of seven passes as the Vikings mounted an 86-yard drive of their own that ended with Ponder's second TD pass to Rudolph, this one for two yards after Rudolph got away from safety Dashon Goldson and the Vikings led 24-13 early in the fourth quarter.
The Vikings defense made that hold up with two key takeaways. After a Toby Gerhard fumble gave the 49ers the ball late, Smith's 249-pass stretch without an interception -- a 49ers record -- was ended when rookie Josh Robinson got his first career interception.
Moments later, Gerhard fumbled again. But, two plays later, Jared Allen sacked Smith, forcing a fumble the Vikings recovered.
The game had been billed as Randy Moss' first-ever regular-season game in the Metrodome in a visiting uniform. But the 35-year-old wide receiver was not a factor. Moss made three catches but played sparingly, especially in the second half.
In all, the Vikings outgained the 49ers, 344 yards to 280.
Notes: For the third time this season wide receiver Ted Ginn (ankle) and running back Brandon Jacobs (knee) were inactive for the 49ers due to preseason injuries. ... Undrafted rookie tight end Garrett Celek made his NFL debut for San Francisco. ... As expected, Vikings linebacker Erin Henderson -- the team's leader in sacks and tackles and a key part of the Vikings nickel defense -- was inactive due to a concussion sustained last week against Indianapolis. Marvin Mitchell, making his third start in six years, replaced Henderson. Mitchell did not play the first two weeks due to an ankle injury. ... DE De'Aundre Reed (calf) was inactive for Minnesota, as was rookie receiver Jarius Wright, who had missed the first two games with an ankle injury. ... Starting Vikings safety Mistral Raymond was carted off the field after injuring his right ankle on the final play of the first quarter. He was replaced by Jamarca Sanford. ... Vikings kicker Blair Walsh set a team record by hitting a field goal longer than 50 yards in three consecutive games.