Houston Astros pitcher Bud Norris was perfect for his last three innings on Wednesday night.
It was a tough first three innings that did him in and gave the St. Louis Cardinals a 4-3 win.
Norris had already allowed four runs with one out in the third inning, including solo homers from Daniel Descalso and Allen Craig.
After Craig's home run in the third inning, Norris (5-3) didn't allow another baserunner. He retired the next 11 batters he faced, striking out seven to finish with 12 strikeouts and seven hits in six innings.
"They attacked me early," Norris said. "It was a tough start, but I got back in my groove."
Norris became the first Astros pitcher to strike out 12 without a walk since Shane Reynolds did it in 1999. That didn't mean much to Norris, who was disappointed he couldn't help the team win.
"My job is to put up zeros and keep my team close, and it's not about strikeouts," Norris said. "All that means is that I didn't get many ground balls."
St. Louis starter Adam Wainwright's start went the opposite of the one by Norris.
Wainwright was unhittable through the first four innings, but finished on a rough note.
He didn't allow a hit until the fifth inning when Jason Castro singled on a grounder to center field with one out. Norris and Jose Altuve hit consecutive singles after that to load the bases. Wainwright ended the threat by striking out Jed Lowrie and Fernando Martinez.
Missed opportunities were rampant for the Astros, who left 13 runners on base for the third time this season. They're 0-3 in those games.
"It's nice to see the guys be able to come back," Astros manager Brad Mills said. "It was good to see the guys put things together, but we left a lot of runners on and we had our opportunities. It would have been nice to capitalize on that, but Wainwright was throwing the ball extremely well."
Wainwright (5-6) yielded seven hits and three runs with eight strikeouts in 5 2-3 to improve to 5-0 in six starts at Minute Maid Park.
The Astros scored three runs in the sixth inning. Chris Johnson hit a triple to deep center field with one out, and Brett Wallace followed with an RBI single. Two batters later, Castro singled and Brian Bogusevic drove in Wallace.
Victor Marte entered the game in relief of Wainwright and allowed an RBI single to Altuve as the Astros pulled within one.
They wouldn't get any closer.
The Astros stranded two runners in the seventh, two in the eighth and one in the ninth as they failed to take advantage of opportunities.
"We had a ton of chances, but we just didn't capitalize on them," Lowrie said. "We left way too many guys on base to win a game like that."
Jason Castro tied a career high with his third hit on a single with no outs. Pinch-hitter Marwin Gonzalez reached on a bunt single and first baseman Matt Adams' throw to Descalso covering first was high. That sent Gonzalez to second as Castro tried to score, but he was thrown out at the plate by Descalso.
The second baseman had to sprint far down the right-field line to retrieve the ball before making a pinpoint throw to catcher Yadier Molina.
Gonzalez was injured on the play when he tripped over first base. He hobbled off the field with an injury that Mills described as a heel bruise.
He was replaced by J.A. Happ as a pinch-runner, and Happ was later replaced by reliever Wesley Wright.
Jason Motte replaced Mitchell Boggs with two outs and walked Lowrie, but Martinez struck out to end the inning. Motte remained in for the ninth and allowed one hit before earning his 10th save.
NOTES: Houston CF Jordan Schafer was out of the lineup for the second straight game with an illness, but came in as a pinch-runner in the ninth. ... Houston signed its third-round draft pick, RHP Brady Rodgers. ... The teams wrap up the series Thursday when Happ faces Cardinals RHP Lance Lynn.