Kyle Lohse pitched seven strong innings as the St. Louis Cardinals took a 4-2 win in the second of three games from Busch Stadium.
Lohse (13-2) gave up just two runs on three hits with three strikeouts to run his winning streak to seven games.
"I felt real solid mechanically," Lohse said. "I felt like I was hitting my spot, changing speeds, doing things I needed to be successful."
Jon Jay went 2-for-4 with an RBI and a run scored while Yadier Molina and Daniel Descalso each drove in a run for the Cardinals, who have won three of four.
Bud Norris (5-11) gave up three runs on seven hits over six innings while Chris Snyder and Brett Wallace each hit solo homers for the Astros, who have lost six straight.
"It was frustrating. We were knocking on the door a couple of times," Wallace said. "We had guys on base and hit the ball hard, but they made some plays."
Wallace's two-out homer in the first gave Houston the early lead, but St. Louis tied the game in the second.
With one out, Allen Craig singled and came home two batters later on a Descalso double to left-center.
Snyder led off the third with a homer and Houston later had men on first and second with one out, but they were stranded there as the next two batters recorded outs.
St. Louis, though, took the lead for good in the fifth. Rafael Furcal led off with a single and moved to second on a sac bunt from Lohse. Jay then singled home the first run and took second on the throw to the plate. Jay moved to third on a groundout from Matt Carpenter and came home on a wild pitch from Norris for a 3-2 lead.
Molina's RBI single in the eighth gave the Cards some breathing room and Jason Motte set the Astros down in order in the ninth for his 29th save of the season.
St. Louis has won five of the eight games against Houston this season...Lohse moved to 9-8 in 18 appearances against Houston...Norris, who has lost 10 straight games, fell to 7-4 in 13 starts against St. Louis.