Houston rookie Lucas Harrell was hoping to get back on track and get his first win since Aug. 14 on Tuesday night.
Instead he was gone after five innings in a 4-0 loss to the St. Louis Cardinals.
Jaime Garcia pitched seven sharp innings and Jon Jay drove in two runs to help the Cardinals improve their playoff chances.
Harrell (10-11) yielded seven hits and two runs with a career-high six walks, but wouldn't blame his struggles on the walks he allowed.
"No, it was everything," he said. "I was terrible. I felt like the first two innings I was just trying to get a feel for the game. I felt like I never picked up a baseball before; it was embarrassing. It was bad."
Houston interim manager Tony DeFrancesco said before the game that Tuesday could be Harrell's last start of the season because he entered the game having pitched more than 182 innings. But he said after the game that they'll let him pitch five innings on Houston's upcoming road trip.
"Maybe he can finish strong," DeFrancesco said. "They have a pretty good team over there, and he got into some trouble. But he battled through it. To only give up two runs against that team, that is a pretty good job. He has really showed us that he is a major league pitcher. He's doing everything he can."
The Cardinals won their fourth straight and extended their winning streak over the last-place Astros to a franchise-best 10 games. They also moved 4 1/2 games ahead of Milwaukee in the race for the second NL wild card. The Brewers lost in Cincinnati 4-2.
The Dodgers, who played later in San Diego, began the day 3 1/2 back.
With seven games remaining, St. Louis is closing in on the NL's final available postseason spot. Atlanta clinched at least a wild-card berth by beating Miami 4-3 earlier Tuesday night.
Garcia (6-7) allowed six hits and struck out five to beat the Astros for the second time in a week after going 0-5 in his first seven starts against Houston. Mitchell Boggs and Joe Kelly completed the seven-hitter.
Jay drove in a run with a single in the second and sent another run home on a forceout in a two-run eighth.
Harrell got into trouble early as Jay led off with a single. Matt Holliday drew a one-out walk before Allen Craig's single loaded the bases. A sacrifice fly by Yadier Molina gave St. Louis a 1-0 lead.
Harrell limited the damage when he struck out Carlos Beltran to end the inning.
Houston has gone to a six-man rotation in the latter part of the season, something Harrell has had trouble adjusting to.
"I think it's the six days off between starts. To me that is a little too much time," he said. "I am a touch and feel kind of guy; I need to be out there a lot. It's something that I didn't think it would be a problem. I don't know if it's just in my head or what, but I have just struggled. If you just look at my last five starts, I have been pretty bad."
Garcia hit a two-out double to the left-field corner in the second and scored on a single by Jay, which rolled just out of the reach of a diving Jed Lowrie at shortstop and into center field to make it 2-0.
The Astros turned a double play to end the third inning and used another one for the first two outs of the fifth. The Cardinals had the bases loaded when Beltran hit a grounder that Matt Downs grabbed near first. He threw home for the first out before catcher Chris Snyder relayed back to first for the second one.
Harrell intentionally walked Daniel Descalso before Pete Kozma grounded out to end the threat.
Kozma continued his solid play in place of injured All-Star shortstop Rafael Furcal and had an RBI double in the eighth.
The Astros couldn't string together any hits through the first six innings. Justin Maxwell singled in the seventh before a single by Brandon Laird with one out sent Maxwell to third. The Astros came away empty after a double play by St. Louis.
"He really had his sinker going, and he was really coming after us," Maxwell said of Garcia. "We were down just two, and we got two runners on -- we had our opportunities -- but he made some really good pitches, and he got that double play."