Altuve hit a three-run homer in the eighth after missing two games with a sore heel. Abreu added a two-run homer later in the inning to his first-inning sacrifice fly as he reached the 900-RBI mark for his career.
Martin Maldonado hit a two-run double for the Astros, who erased a 7-5 eighth-inning deficit to earn just their fourth victory in their last 12 games
Astros starting pitcher Cristian Javier allowed six runs on eight hits, a walk and a hit batter in four innings. Seth Martinez (2-3) earned the victory and Ryan Pressly banked his 15th save
Nolan Arenado hit a three-run homer for the Cardinals before exiting with lower-back tightness. Paul Goldschmidt went 3-for-5 with a homer and two RBIs
The Astros took a quick 3-0 lead. After Altuve led off the game with a double, Alex Bregman walked and Kyle Tucker hit an RBI double
Abreu followed with a sacrifice fly and Jeremy Pena hit an RBI single one out later.
But the Cardinals surged ahead 4-3 in their half of the inning on Arenado's three-run homer and Alec Burleson's RBI double
Goldschmidt made it 5-3 with his second-inning homer. The Cardinals added a run in the fourth when Burleson was hit by a pitch and eventually scored on Goldschmidt's single
The Astros chased Mikolas with a two-out rally in the sixth inning. Bligh Madris hit a double, Jake Meyers walked and Maldonado hit a double cut the deficit to 6-5
Brendan Donovan made it 7-5 with a homer in the bottom of the inning.
But the Astros rallied in the eighth inning on a single by Madris, a walk to Meyers and Altuve's homer. After Tucker doubled with two outs, Abreu followed with his homer to round out the scoring
--Field Level Media