Mike Zunino had a two-run drive in the second, Michael Saunders added a pair on his long ball in the fourth and Brad Miller homered two batters later to help the Mariners to their eighth win in 10 games.
Heralded prospect Taijuan Walker (1-0) allowed homer runs to George Springer and Marwin Gonzalez early before settling down to strike out six in six innings in his season debut after dealing with a shoulder problem.
Rookie James Jones had a career-high four hits and his second three-steal game. He's the second player in franchise history and first since Ichiro Suzuki in 2004 to have at least four hits and three steals in a game.
Houston starter Collin McHugh (4-7) allowed five hits, five runs and tied a career high with three home runs in six innings.
Walker has started four major league games and three have come against the Astros. He picked up his second win on Monday night and the first since he also beat the Astros in his major league debut on Aug. 30. The 21-year-old made six starts at Triple-A Tacoma before he was recalled on Monday.
Houston's Jose Altuve went 0 for 3, but extended his franchise record by stealing a base in his seventh straight game. He leads the American League with 37 this season and his seven-game steal streak is the most in the majors since Chone Figgins did it in 2010.
He was plunked on the left elbow in the fifth inning, but appeared to be OK.
Alex Presley singled with one out in the first before Springer's towering shot, which bounced off the glass above the left field wall, gave Houston a 2-0 lead. It was the first career homer allowed by Walker and traveled an estimated at 445 feet, which is the longest ever hit to left field by an Astro.
Springer leads the Astros with 16 homers this season, which is a franchise record for a rookie before the All-Star break.
Logan Morrison drew a walk to start the second before Zunino's homer to the Crawford Boxes in left field tied it at 2-all.
Gonzalez put Houston back on top in the bottom of the inning with his two-out homer, which crashed off the foul pole in right field. Walker walked Jon Singleton after that, but he limited the damage when Matt Dominguez hit into an inning-ending double play.
Zunino struck out with one out in the fourth inning, but reached first on a wild pitch. Saunders gave Seattle a 4-3 lead with his homer to the second deck in right field.
McHugh struck out Dustin Ackley before Miller's fifth home run this month pushed the lead to 5-3.
The Mariners got consecutive singles by Endy Chavez and Jones in the seventh before Cano's home run off Josh Zeid sailed into the Crawford Boxes to make it 8-3.
NOTES: Walker is the third pitcher since 2004 to face the same team three times within four starts, joining Wade LaBlanc and Justin Germano. ... The series continues on Tuesday when Houston's Jarred Cosart opposes Hisashi Iwakuma. ... Houston CF Dexter Fowler missed his fourth straight game with tightness in his back. ... Houston manager Bo Porter said that Astros LHP Dallas Keuchel, who was scratched from his last start because of inflammation in his left wrist, is doing better and should be ready to start on Thursday or Friday.