HOUSTON -- Even Andrew Heaney couldn't remember his last road win.
"Apparently, it's been awhile," the left-hander said.
Heaney (8-8) scattered five hits with six strikeouts to earn his first road win since Sept. 2, 2015, at Oakland, a span of 17 straight road starts.
"Heater was good," Heaney said. "Breaking ball mixed in at times, and I really didn't throw the changeup all that much. ... I got some timely outs. I kept them from building that big inning."
After missing all but one start in 2016 with Tommy John surgery and starting just five games in 2017 -- including three on the road- he began the day 0-5 in 12 road starts this season.
Heaney, who allowed five runs in six innings in his last start Friday against the Astros, improved to 3-1 against Houston this season and allowed fewer than two runs in three of the four outings.
"Coming from just facing them last week, it looked like his command was where it needed to be," Angels manager Mike Scioscia said. "He had all his pitches working. He pitched ahead in counts. He checked all the boxes that should lead to a great outing."
Heaney's only other shutout start this season was June 5 against Kansas City in which he threw a one-hitter. He had allowed 11 runs in his last two starts.
"We saw him a couple days ago and he didn't quite have the velo that he had tonight," Houston manager AJ Hinch said. "And then I think four out of the first five innings we had baserunners and they were erased one way or another, so he was able to escape any baserunners that we had. He threw a really good game.
Justin Upton, who was reinstated off the disabled list earlier in the day, put the Angels on top 1-0 with an RBI single to right earlier in the inning, chasing Justin Verlander. Kole Calhoun started the inning with a double and moved to third on Mike Trout's one-out single.
"We got some big hits in the sixth inning," Scioscia said. "We haven't gotten too many good looks at Justin all year, but tonight, we got him in the sixth."
Ohtani scored on Chris Devenski's balk in the eighth to increase the lead to 5-0.
The AL-West leading Astros began the day 2 1/2 games up on Oakland.
Verlander (13-9) allowed three runs and five hits but struck out 11 in 5 1/3 innings. He allowed three or more runs for the third straight start.
"Not great; we lost," Verlander said of his night. "Feel like I had good stuff. Unfortunately, I gave up a couple hits in a row and those guys were able to capitalize on it."
Tyler White hit a two-run homer to left field in the ninth as Houston avoided the shutout.
Angels: RHP Ohtani (right UCL sprain) will start Sunday against the Astros. Ohtani, who threw a simulated game on Saturday, last pitched for the Angels on June 6. ... 1B Albert Pujols (left knee) was placed on the 10-day disabled list after undergoing an arthroscopic debridement in Los Angeles on Wednesday. The general timetable to return to playing from the procedure is at least six weeks. "That's a big loss for us," Scioscia said. "I think Albert is part of the heart and soul of this club." ... RHP Matt Shoemaker will join the team in Houston and throw a bullpen sometime during the weekend, with the possibility of joining the rotation sometime early next week if everything goes well, Scioscia said. Shoemaker threw four hitless innings allowing one unearned run on two walks and six strikeouts Wednesday in a rehab start with Class A Inland Empire. ... C Jose Briceno was recalled from Triple-A Salt Lake Thursday.
Astros: C Brian McCann (right knee) will catch on Saturday, Hinch said. McCann has been on the disabled list since July 1.
Angels: RHP Jaime Barria (8-8, 3.67 ERA) will make his 21st start of the season Friday against the Astros looking to rebound after allowing four runs in three innings in his last start Saturday against them.
Astros: LHP Framber Valdez (2-0, 0.96) will make his first career home start Friday against the Angels looking for another good outing after allowing one run in five innings in his last start Saturday against them.
For more AP baseball coverage: https://apnews.com/tag/MLBbaseball and https://twitter.com/AP-Sports
Christian Yelich homered and drove in six runs, and the surging Milwaukee Brewers hurt St. Louis' playoff chances with a 12-4 victory over the Cardinals on Tuesday night.
Christian Yelich unloads the bases with a triple and later connects on a three-run homer to help the Brewers defeat the Cardinals.
Harold Castro's first career hit started an eighth-inning rally that led the Detroit Tigers to a 4-2 victory over Minnesota on Tuesday in a game in which Joe Mauer set the Twins' record for reaching base.
Odubel Herrera takes his eye off the ball and it bounces off his glove, allowing Trevor Story to advance to second base.
Ronald Acuna Jr. hit a go-ahead single in the seventh inning, Ozzie Albies homered in the eighth and the NL East champion Atlanta Braves rallied past the New York Mets 7-3 on Tuesday night for their sixth straight victory.
David Dahl pushes an opposite-field home run just over the wall to give the Rockies a 3-1 lead.