Xander Bogaerts singled, doubled, and homered, driving in three runs.
After two innings, David Price (2-1-0-1-2, 45) turned the ball over to Travis Lakins, Ryan Weber, and Hector Velázquez.
In the eighth, Matt Barnes gave up a leadoff homer to Justin Upton before retiring the next three batters. Brandon Workman hit Mike Trout with a pitch with two outs in the ninth and Brian Goodwin flied to center.
J.D. Martinez hit a solo homer (#34) and walked twice.
Also: Justin Verlander pitched his third career no-hitter (9-0-0-1-14, 120), facing 28 batters and striking out 14 as the Astros beat the Blue Jays 2-0 in Toronto.