HOUSTON (AP) -- Bud Norris pitched into the eighth inning for his first win since May 21, and Jose Altuve homered and the Houston Astros avoided a sweep with a 2-0 win over the St. Louis Cardinals, who are vying for the second NL wild card, on Wednesday night.
Norris (6-13) allowed two hits and struck out seven without a walk in 7 1-3 innings to snap a career-long 12-game losing streak which spanned 18 starts in the last National League game in Houston with the Astros moving to the American League West for 2013.
The victory broke a 10-game winning streak for the Cardinals over Houston and cut their lead over Los Angeles and Milwaukee to 3 1/2 games for the second NL wild card spot after both teams won Wednesday.
Norris hurled the gem despite a tough stretch where he has been slowed by a blister on index finger of his right hand and flu-like symptoms.
Wilton Lopez got the final five outs to complete the three-hitter and get his eighth save. Norris clapped his hands once and smiled when Houston got the final out.
Chris Carpenter (0-1) allowed four hits and two runs in six innings in his second start since missing 150 games following right shoulder surgery.
Norris had retired 12 of 13 when he hit Adron Chambers to start the eighth inning. Daniel Descalso reached on an error by Brett Wallace, when his grounder rolled between the first baseman's legs.
Norris struck out Pete Kozma before he was lifted for Lopez. Pinch-hitter Carlos Beltran grounded into a forceout that left Descalso out at second and Chambers on third base, before Jon Jay grounded into a forceout to end the threat.
Altuve connected on Carpenter's first pitch of the fourth inning for Houston's first hit, a homer to the Crawford Boxes in left field, to make it 1-0.
Scott Moore followed with a double which bounced off the wall in center field and moved to third on a flyout by Jed Lowrie. Justin Maxwell reached on a fielder's choice that left Moore out at home.
Maxwell stole second base before scoring on Wallace's double to right field which pushed the lead to 2-0.
Norris was perfect through the first three innings. Jay doubled to start the fourth for the Cardinals' first hit. But Norris got right back on track, retiring the next seven batters. Carpenter singled with one out in the sixth before Norris retired the next two Cardinals to end the inning.
Carpenter hit Fernando Martinez to start Houston's third, but faced the minimum through three thanks to a double play in that inning.
He threw 92 pitches after throwing 77 in five innings of a no-decision Friday in his first start since the injury. It was his first start against Houston since throwing a two-hitter last Sept. 28 to clinch the NL wild card.
NOTES: Cardinals 3B David Freese missed his third straight game after rolling his right ankle in pregame warmups in the batting cage on Monday. He said he's feeling better and expects to play when the Cardinals open a series against the Nationals on Friday after a day off Thursday. ... Hall of Fame broadcaster Milo Hamilton, who had the memorable call on Henry Aaron's 715th home run, called his last game for the Astros on Wednesday night. Hamilton, who doesn't call out of town games, is retiring after 59 seasons calling major league games. Hamilton has called the Astros for 28 seasons. He said Wednesday that the call of Aaron's 715th home run was the most memorable of his career, and other top memories were his calls of Mike Scott's no-hitter in 1986 and Craig Biggio's 3,000th hit in 2007. Asked how many games he'd called in his career he answered: "It's thousands. But now who's counting?" ... Houston OF J.D. Martinez had surgery to repair the injured hamate bone in his left wrist on Wednesday. He can resume baseball activities in four to six weeks.