Brian McCann had two hits and drove in another run for the defending World Series champions (27-17), who reclaimed sole possession of first place in the AL West after the Angels (25-17) pulled virtually even Monday.
Josh Reddick threw out two Los Angeles runners from right field, and he also got a leadoff double in the eighth against reliever Jose Alvarez (2-1), who swiftly wasted seven stellar innings by rookie Jaime Barria.
Pinch-hitter Yuli Gurriel singled and Alex Bregman walked to load the bases. Altuve cleared them by poking a double down the left field line on a low pitch to make it 4-3.
Justin Upton and Rene Rivera homered for the Angels, whose bullpen blew a golden chance to cement their solid early-season start.
Barria yielded four hits and struck out seven over seven excellent innings for the Angels, but Alvarez fell apart in the eighth against the defending World Series champions.
Collin McHugh (1-0) pitched two scoreless innings of relief. Ken Giles allowed Albert Pujols' leadoff single in the ninth, but finished up for his sixth save.
Gerrit Cole added seven strikeouts to his AL-leading total, but the Orange County native lasted just five innings his second career start at Angel Stadium, where his parents were longtime season ticket holders. Cole gave up five hits and left trailing 3-1.
Upton's two-run homer in the first inning was his seventh already in May, while backup catcher Rivera added a solo shot in the fifth.
After throwing out Mike Trout at third base in the fifth, Reddick got his second outfield assist in the seventh, throwing out Kinsler at the plate by a healthy margin as he tried to score from second.
ALTUVE HEATS UP
Altuve was thrown out at the plate moments later when he inexplicably tried to score from second on an infield grounder, but he had already done his damage. Last season's AL MVP ended an 0-for-16 skid Monday, and he reached base three times with two hits Tuesday.
Barria was outstanding in his fifth career start, limiting Houston to four singles and only five baserunners. The 21-year-old Panamanian rookie has been an unexpected boon to the Angels' injury-plagued rotation, and was stellar at home again after taking a no-hitter into the sixth inning of his last start in Anaheim.
Shohei Ohtani went 1 for 4 while batting in the No. 2 spot in the Angels' lineup for the first time behind leadoff hitter Trout, who had two walks and two strikeouts. Angels manager Mike Scioscia shook up his lineup because of a scheduled day off for Zack Cozart, their normal leadoff hitter. After beginning his rookie season in the No. 8 spot, Ohtani has steadily progressed up the order. Ohtani singled in the fifth after a walk to Trout, who was thrown out by Reddick trying to go from first to third.
Home plate umpire Fieldin Culbreth left in the third inning when Ohtani fouled a 99-mph fastball off his mask. Culbreth was visibly shaken, and CB Bucknor replaced him behind the plate. The 55-year-old Culbreth has been in the majors since 1993, appearing in two World Series.
Astros: Justin Verlander (4-2, 1.21 ERA) is coming off a loss to Texas despite allowing one run in six innings. He is just 9-8 against the Angels in his decorated career.
Angels: Garrett Richards (4-1, 4.09 ERA) held the Astros to 1 earned run over 11 combined innings in two starts last season. He is 5-4 against Houston in his career.
More AP baseball: www.apnews.com/tags/MLBbaseball