It was the NL Central-leading Cardinals' fourth straight win and it gave them the best record in the majors. The Astros have lost four in a row.
Westbrook (6-3) gave up a two-run homer to Carlos Lee in the first inning, but didn't allow another earned run to get his fourth win in a row. His bases-loaded, two-out double off Houston starter Brett Myers made it 5-2 in the fourth inning.
"I think I actually learned a little bit from my pinch-hit experience the other night," Westbrook said. "I wanted to be aggressive, but I also wanted to get a pitch to hit. I didn't want to just go up there and be swinging."
Former Houston star Lance Berkman was impressed with Westbrook's contribution on offense.
"We're missing about half of our offense so for the pitcher to step up and do what he did that's great," he said.
Berkman did his part, too, hitting his 13th homer of the season on a two-run shot in the first inning and Albert Pujols homered for the fourth straight game with a solo blast to left field in the eighth.
Pujols has put the early chatter about his struggles to rest with five homers in the last four games.
"Pujols is a great ball player," St. Louis manager Tony La Russa said simply. "He does great things."
Fernando Salas allowed one run in two innings for his 11th save.
Myers (2-5) yielded six hits and five runs with four strikeouts in six innings. Houston left 13 runners on base and was 0 for 10 with runners in scoring position until Chris Johnson's RBI double made it 7-4 in the ninth inning.
"The guys are giving us those quality at-bats," Houston manager Brad Mills. "The hits aren't coming in those situations, but they will. We've got all the confidence in the world that they're going to come. It's something that it's just kind of a slice we're going through. But it'll be fine."
Westbrook allowed eight hits and two earned runs while walking three in 5 1-3 innings, but he consistently escaped trouble with Houston runners in scoring position after giving up the early home run to Lee that tied the game 2-2.
Westbrook allowed two singles in the sixth before J.R. Towles reached on an error by shortstop Ryan Theriot when the ball rolled between his legs to load the bases. Westbrook was replaced by Jason Motte, who plunked pinch hitter Matt Downs on the right hand to walk in a run and get Houston within 5-3.
Motte settled down after that and was able to limit the damage by striking out Michael Bourn before Clint Barmes grounded into a force out to end the inning.