The loss kept the Texans (12-3) from clinching home-field advantage throughout the AFC playoffs. They could still secure a first-round bye if Denver loses later Sunday.
Peterson had his lowest rushing total since getting 79 yards on Oct. 14 in a loss at Washington, breaking a streak of eight 100-yard games. He has 1,898 this season and needs 208 yards to break the NFL single-season rushing record held by Eric Dickerson.
The Vikings took a 10-3 lead when Walsh kicked a 56-yard field goal. The kick gave Walsh, a rookie, the NFL record with nine field goals of 50 yards or longer this season.
The Texans failed to score a touchdown for the first time since 2006.
J.J. Watt had a sack to leave him with 20 1/2 this season.
Houston got within 10 points before Gerhart's 3-yard run extended the lead to 23-6 with about five minutes left in the fourth quarter. That drive was helped by a 29-yard run by Ponder.
Ponder was 16 of 30 for 174 yards to help the Vikings pile up 345 yards. He finished with seven rushes for 48 yards 14 more yards rushing than the Texans had. Arian Foster had 10 rushes for 15 yards before leaving with about nine minutes left in the third quarter with an irregular heartbeat. Coach Gary Kubiak said he is OK, but he was taken out as a precaution.
Ben Tate took over and didn't fare much better with four carries for 17 yards.
The Texans were foiled by their inability to convert third downs, going 1 of 11. Quarterback Matt Schaub went 18 of 32 for 178 yards.
Houston got to the Minnesota 1 with a 12-yard reception by Kevin Walter late in the third quarter. Then came an incomplete pass followed by a run for no gain by Tate. Schaub was sacked by Fred Evans for a loss of 14 yards to make the Texans settle for a 33-yard field to cut the lead to 16-6.
Houston had to punt on its first possession of the third quarter, but got the ball right back when Watt sacked Ponder and forced a fumble. Bradie James recovered, but the Texans couldn't take advantage of the miscue and had to punt again.
The Vikings extended their lead to 16-3 when Walsh made a 39-yard field goal on the first drive of the second half. That series was helped when Ponder found Jarius Wright on a 15-yard reception, and the Vikings got 15 more yards when Whitney Mercilus was flagged for unnecessary roughness on Ponder.
Houston was on the Minnesota 28 early in the second quarter when Jasper Brinkley forced Foster's fumble, which was recovered by A.J. Jefferson.
Houston had to punt later in the second quarter when Schaub was sacked for a 9-yard loss. A 41-yard field goal by Walsh left Minnesota up 13-3 at halftime.
Peterson ran for 20 yards to get Minnesota's offense going. The Vikings took a 7-3 lead when Kyle Rudolph grabbed a 3-yard touchdown reception. Rudolph also had a 27-yard catch that drive.
Houston's Andre Johnson had seven receptions for 97 yards.
Gerhart finished with eight carries for 31 yards.
Online: http://pro32.ap.org/poll and http://twitter.com/APNFL