The Vikings took a 7-0 lead on their first possession, going 82 yards in 16 plays, and draining 7:40 off the clock. Ponder hit Kyle Rudolph in the back of the end zone on fourth and one at the 1-yard-line to finish the drive.

In the second quarter, Ponder scrambled for a 23-yard touchdown run, stretching the ball across the goal line as he fell. Rookie kicker Blair Walsh tagged on a 52-yard field goal as time expired in the half to give the Vikings a two-touchdown lead.

"We believed we could do it, and we did it," Ponder said of the victory. "We talked about starting fast, and we started fast."

The 49ers showed a bit of life in the third quarter, as Kyle Williams ran the opening kickoff back 94 yards. That set up a David Akers field goal. In San Francisco's next possession, quarterback Alex Smith hit Vernon Davis from one yard out to close the gap to 17-13.

The Vikings rebounded on the next possession, however, with another Ponder-to-Rudolph connection. This one was from 2-yards out, to make it 24-13.

The Vikings' defense was led by linebacker Chad Greenway, who had 13 tackles and two sacks. Jared Allen also got his first sack of the season. It came late in the fourth quarter, as he stripped San Francisco quarterback Alex Smith of the ball, with Brian Robison recovering. After that, the Vikings went into their victory formation to close out the contest.

As for former Viking Randy Moss, the San Francisco receiver had a relatively quiet game, catching just three passes for 27 yards.

With the win, the Vikings improve to 2-1 on the season. Minnesota plays at Detroit next Sunday.

After missing practice on Sunday, tight end Kyle Rudolph returned to the Vikings' practice field on Monday. He and Chris Cook were shaken up in Friday's preseason game against the Bills, and both were suffering from concussion-like symptoms. Cook remains out.

The Vikings practiced with full pads for the first time at training camp on Monday, and quarterback Christian Ponder completed 12-19 passes, including a 24 yard touchdown to tight end Kyle Rudolph. Ponder said if Rudolph is open, even just a little bit, he's "going to get him the ball."

The Vikings closed preseason play with a 28-24 loss to the Houston Texans Thursday night. The game featured three long touchdown plays by the Vikings. Devin Aromashodu caught a 58-yard touchdown pass, Jarius Wright hauled in a 59-yard score and Jordan Todman had a 76-yard touchdown run.