Verlander (5-2) was superb in ending his two-game skid, finishing with seven strikeouts to reach 2,500 for his career. He walked one and lowered his ERA from 1.21 to 1.05 with his fourth start of at least six innings without giving up a run this season.
The right-hander threw 118 pitches in his 24th career complete game and first since 2016 with Detroit. With two runners on, he retired Zack Cozart on an infield popup to polish off his eighth major league shutout and first since 2015 with the Tigers.
Houston took two of three in the series and holds a two-game lead in the AL West over the Angels.
Gattis' fourth home run came off hard-luck loser Garrett Richards (4-2) in the second inning after a two-out throwing error by Cozart at third base. Gattis has three home runs in his last five games.
That was enough for Verlander, who did not allow a runner past first base for the first seven innings. Andrelton Simmons singled in the second and Albert Pujols singled in the fourth.
The Angels finally put pressure on the Astros' ace in the eighth. Ian Kinsler got a one-out single and Kole Calhoun hit a ground-rule double to center field, putting two runners in scoring position. But then Verlander threw a called third strike past Luis Valbuena and got Mike Trout to ground out on a check-swing.
Trout went 0 for 4. Shohei Ohtani was 0 for 4 with three strikeouts, going down swinging on three pitches to start the ninth for Verlander's 2,500th strikeout.
Pujols singled to right-center with two outs and Verlander walked Andrelton Simmons before retiring Cozart.
Richards allowed four hits and one walk in seven innings. He struck out four, and both runs off him were unearned.
Astros: OF Tony Kemp was recalled from Triple-A Fresno after OF Jake Marisnick was sent down following Tuesday night's game. Kemp went 1 for 3 while playing left field and batting ninth.
Angels: RHP Eduardo Paredes was recalled from Triple-A Salt Lake City, giving the Angels another option in their struggling and overworked bullpen. RHP Jamie Barria, who is 3-1 with a 2.13 ERA in five starts, was sent down in a corresponding move.
Astros: RHP Charlie Morton (5-0, 2.03 ERA) starts against Cleveland on Friday. Morton has allowed one run or fewer in five of his eight starts.
Angels: LHP Tyler Skaggs (3-2, 3.07) will pitch the opener of a four-game series against Tampa Bay on Thursday. Skaggs has not won at home this season, going 0-2 with a 5.31 ERA in four starts.
More AP baseball: https://apnews.com/tag/MLBbaseball