Cardinals 4, Astros 3: Allen Craig continued his mastery of Minute Maid Park with a solo home run and an RBI single as St. Louis posted just its fourth win in 13 games.
Daniel Descalso also homered and David Freese drove in a run for the Cardinals, who improved to 3-6 on their 10-game road trip.
St. Louis wasted little time jumping on Bud Norris as Descalso hit a one-out solo shot in the first. Carlos Beltran then doubled and scored on Craig's single, and Freese followed with an RBI double for a 3-0 lead.
Craig belted a one-out solo homer in the third to increase the advantage. He finished the night 2-for-4 to raise his career average at Minute Maid Park to .385 (10-for-26) with four home runs and 11 RBIs in eight games.
Craig's blast, which provided the last baserunner for the Cardinals, proved crucial as Houston rallied for three runs in the sixth to make things interesting. Chris Johnson hit a one-out triple and scored on Brett Wallace's base hit, and pinch hitter Brian Bogusevic and Jose Altuve delivered back-to-back RBI singles later in the frame.
Adam Wainwright (5-6) allowed three runs and seven hits over 5 2/3 innings while striking out eight in improving to 11-1 lifetime against the Astros. Four relievers bridged the gap to Jason Motte, who recorded the final four outs for his 10th save in 13 chances.
Norris (5-3) yielded four runs and seven hits in six frames en route to his first loss in four home decisions this year. The right-hander, who fell to 7-3 in his career against the Cardinals, struck out a season-high 12 without a walk.
Jason Castro collected three hits and scored a run for the Astros, who have lost nine of 11.
GAME NOTEBOOK: Houston pitchers retired the final 20 batters they faced after Craig's homer in the third inning. ... Cardinals LH Jaime Garcia returned to St. Louis to have his elbow examined. Garcia pitched only two innings in Tuesday's loss after missing his previous start with elbow problems. ... Houston has reached a verbal agreement on a contract with SS Carlos Correa, who is expected to take a physical Thursday morning, sign the contract later in the day and take batting practice prior to the game against the Cardinals. Correa was selected first overall in the First-Year Player Draft on Monday.