Left-hander Sam Selman came on with one out and served up Alvarez's shot to the gap in right-center on his third pitch, scoring three runs and giving the Astros a 5-3 lead.
Houston closer Ryan Pressly survived Elvis Andrus' second RBI double of the game with two outs in the ninth for his 10th save, preserving a win for Bryan Abreu (3-0), who worked a 1-2-3 eighth.
Seeking a fourth career no-hitter, Verlander retired 12 straight batters before losing Chad Pinder to a walk on a full count with one out in the seventh. The Astros led 1-0 at the time.
After Seth Brown struck out, Andrus lined a double down the third-base line, scoring Pinder with the tying run and ending Verlander's bid at 6 2/3 innings.
Christian Bethancourt, who hadn't homered at the major league level since August of 2016, then smacked Verlander's next delivery over the fence in straight-away center field, giving the A's a 3-1 lead.
It was Bethancourt's first homer in 103 plate appearances this season.
Verlander was pulled after seven innings, charged with three runs on two hits. He walked two and struck out six.
The Astros had given Verlander his 1-0 lead in the top of the third when a walk and consecutive two-out singles by Alvarez and Aledmys Diaz combined to produce the only run against Oakland starter Cole Irvin.
Irvin went the first 5 2/3 innings, allowing one run and six hits. He walked two and struck out two.
Alvarez and Jeremy Pena had two hits apiece, while Bregman scored twice for the Astros, who have won four in a row.
Oakland has lost six of its last seven.
--Field Level Media
Houston | Oakland | |
Justin Verlander | Player | Cole Irvin |
No Decision | W/L | No Decision |
7.0 | IP | 5.2 |
6 | Strikeouts | 2 |
2 | Hits | 6 |
3.86 | ERA | 1.59 |
Houston | Oakland | |
Yordan Alvarez | Player | Elvis Andrus |
2 | Hits | 2 |
3 | RBI | 2 |
0 | HR | 0 |
3 | TB | 4 |
.500 | Avg | .500 |