ST. LOUIS -- Jason Simontacchi pitched a six-hitter for the first complete game of his career and the Cardinals beat the Houston Astros 3-1 Wednesday night.
Simontacchi (2-3) walked none and struck out five in his 34th major league start.
He had allowed 19 earned runs in 17 2/3 innings in his previous four outings, going 0-2.
J.D. Drew and Scott Rolen each had two hits and drove in a run for the Cardinals.
Lance Berkman homered for the Astros, who have lost four of five. Houston was without second baseman and cleanup hitter Jeff Kent, who bruised his left hip making a sprawling catch on Tuesday and is day-to-day.
Drew, still limited to occasional starts following offseason surgery for patella tendinitis in his right knee, singled and scored the Cardinals' first run in the fourth.
Drew hit an RBI double off Jonathan Johnson (0-1) in a two-run fifth that made it 3-1.
Rolen, who's 12-for-23 during a six-game hitting streak, had an RBI single in the fourth and singled to start the sixth. He's among the league leaders with 45 RBIs.
Johnson made his second career start, and first since 1998, after his contract was purchased from Triple-A New Orleans. He lasted 5 2-3 innings and gave up three runs on eight hits.
Berkman hit his eighth homer, and second in three games, with one out in the fourth to give the Astros the lead. He has six homers and 24 RBIs in May.
Johnson, who threw 12 consecutive scoreless innings at New Orleans before the callup, held the Cardinals without a hit for three innings. St. Louis broke through with three singles in the fourth, the last by Rolen, to tie the score at 1.
Simontacchi scored from first on Miguel Cairo's RBI double for the first run in the fifth for St. Louis. Drew followed with his RBI double.
Cal Eldred worked the ninth for his fifth save in seven chances. Eldred has provided stability to a shaky bullpen minus rehabbing closer Jason Isringhausen that has blown 13 of 25 save opportunities.
Edmonds leaves after making lunging catch
Jim Edmonds left Wednesday night's game between the Cardinals and the Astros with bruised ribs after making a lunging catch to end the second inning.
Edmonds robbed Brad Ausmus of a hit when he snared a sinking liner in shallow center field, but came up holding his right side. At the plate in the bottom of the first he fouled off the first pitch from Jonathan Johnson, then held his side again and was removed for pinch-hitter Orlando Palmeiro after consulting trainer Barry Weinberg.
X-rays of Edmonds' rib-cage were negative but team spokesman Brian Bartow said it was "unlikely" that he would play in the finale of a four-game series with the Astros today. The injury will be re-evaluated this weekend.
Edmonds was batting .299 with 11 home runs and 30 RBIs this season.