HOUSTON -- Jake Westbrook struck out in three pitches in his first career pinch-hit appearance last week.
The St. Louis starting pitcher was much better at the plate on Tuesday night.
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.
|More on Cardinals at Astros|
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.
Berkman returned to the Cardinals lineup after sitting out Sunday following a cortisone shot to the left wrist he injured making a diving catch last month. In his second trip to Houston since a trade last year, the slugger, who spent 12 seasons with the Astros, was greeted by a mixture of cheers and boos each time he came to the plate.
Myers allowed consecutive singles to Yadier Molina and Skip Schumaker with two outs in the fourth before intentionally walking Daniel Descalso to load the bases. Then came Westbrook's line drive to center field that put St. Louis ahead 5-2.
"I made 78 good pitches and two bad ones, and it cost me five runs and us the game," Myers said. "There's not much more I can say about it."
Myers retired the next seven batters he faced before being replaced by Sergio Escalona.
Berkman gave the Cardinals the early 2-0 lead with his two-out blast to the bullpen in right center field. Hunter Pence extended his career-best hitting streak to 18 games with a single to set up Lee's blast in the bottom of the inning.
Bourn singled with one out in the third inning before a single by Pence with two outs. Westbrook walked Lee to load the bases, but he retired Jeff Keppinger to escape the jam.
The Cardinals walked three Astros to load the bases with no outs in the eighth inning, but Houston came up empty once again when Salas retired the next three batters, striking out two of them.
"That was beyond the call of duty," La Russa said of Salas. "That's so clutch. He's got great guts."
Theriot had an RBI-double in the ninth inning to extend his hitting streak to a career-best 20 games and push the lead to 7-3. It's the fifth time he's extended the streak on his last at bat.
Westbrook was 0-2 in three starts against Houston before Tuesday and his three RBI match his career total in 57 at bats entering Tuesday's game.
St. Louis right fielder Allen Craig bruised his right knee and received some stitches when he crashed into the fence on the right field line chasing a foul ball in the first inning. He was replaced by Jon Jay. ... Houston RHP Brandon Lyon, pitched an inning on his rehabilitation assignment with Triple-A Oklahoma City. Manager Brad Mills said Lyon felt good after throwing 10 pitches in the inning. Lyon is on the 15-day DL with right biceps tendinitis and a partial right rotator cuff tear.