MINNEAPOLIS -

Christian Ponder threw two touchdowns to Kyle Rudolph and ran for another, helping the Vikings to a surprisingly easy upset of the visiting 49ers in a game nearly marred by a mistake by the replacement officials.

Adrian Peterson ran for 86 yards for Minnesota (2-1), which got off to a fast start by scoring on its first offensive drive - a 16-play, 82-yard march - and took a surprising 17-3 halftime lead against the powerhouse 49ers (2-1).

Alex Smith's franchise record of 249 attempts without an interception came to an end and Randy Moss, who starred for seven seasons in Minnesota, had just three catches for 27 yards in his first game against the Vikings. Moss's latest team was seeking its first 3-0 start since 1998, but the 49ers were beaten at their own game.

Minnesota's ball-control offense had touchdown drives of 82, 80 and 86 yards and racked up 146 rushing yards against last season's stingiest run defense.

Controversy emerged when replacement officials incorrectly allowed San Francisco to successfully challenge a fourth-quarter fumble by Toby Gerhart despite not having a timeout. The call ultimately had no effect on the outcome.

The 49ers set an NFL record by going 14 straight games without allowing a rushing touchdown last season, but Ponder's 23-yard scamper ended this year's streak at 13 quarters. Ponder escaped from the pocket and split a pair of defenders before diving into the end zone for a 14-3 lead.