HOUSTON — Allen Craig and Daniel Descalso homered to back Adam Wainwright, and the St. Louis Cardinals beat the Houston Astros 4-3 Wednesday night.
Descalso's homer came in a three-run first inning and Craig connected in the third to make it 4-1. Craig also had an RBI single in the first.
Wainwright (5-6) yielded seven hits and three runs with eight strikeouts in 5 2/3 innings to improve to 5-0 in six starts at Minute Maid Park.
Houston starter Bud Norris (5-3) allowed seven hits and four runs with a season-high 12 strikeouts and no walks in six innings. He became the first Astros pitcher to strike out at least 12 without a walk since Shane Reynolds in 1999.
Houston scored three in the sixth to get within one, but couldn't capitalize on opportunities in the seventh and eighth. The Astros finished with 12 hits, but left 13 runners on.
Wainwright didn't allow a hit until Jason Castro singled on a grounder to center field with one out in the fifth. 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.
Castro got his third hit on a single with no outs in the eighth. Pinch-hitter Marwin Gonzalez singled on a bunt, but Matt Adams overthrew Descalso, who was covering first base. That sent Gonzalez to second and Castro toward home, but he was out on a throw by Descalso.
Gonzalez was injured on the play when he tripped over first base. He hobbled off the field with what appeared to be a right foot or ankle injury. He was replaced by pinch-runner J.A. Happ.
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.
Chris Johnson tripled to center with one out in the sixth and scored on a single by Brett Wallace to get Houston within 4-1.
Castro singled with two outs before scoring on pinch-hitter Brian Bogusevic's single, which chased Wainwright. He was replaced by Victor Marte, who allowed an RBI single by Altuve to cut the lead to 4-3.
Descalso's solo shot to right-center came with one out in the first. Carlos Beltran doubled and scored on a single by Craig to make it 2-0. A double by David Freese sent Craig home and left St. Louis up 3-0.
Yadier Molina singled to put runners at the corners, but Norris struck out Adams before Freese was caught stealing home to end the inning.
Craig hit a first-pitch homer to the Crawford Boxes in left field to stretch the lead to 4-0 in the third.
Norris got back on track after that, retiring his next 11 batters and striking out seven of them.
The Astros threatened in the seventh when J.D. Martinez walked before a two-out double by Wallace. Justin Maxwell grounded into a force out to leave Houston empty-handed.
Although Wainwright didn't allow a hit until the fifth, the Astros put runners on base in the second and third thanks to errors. The error in the third came when Beltran casually jogged toward a routine fly to right by Altuve before it bounced off the heel of his glove and dropped to the ground.
That play allowed Altuve to reach second before Wainwright walked Lowrie, but the right-hander struck out Fernando Martinez to escape.