Four straight walks started the Mariners' big burst as they overcame a 2-1 deficit.
Iwakuma (1-0) made his first appearance after starting the season on the disabled list because of a sprained middle finger.
Iwakuma allowed four runs and six hits in 6 2-3 innings. Fernando Rodney escaped a bases-loaded jam in the eighth and finished for his seventh save.
Dallas Keuchel (2-2) left after walking the bases loaded with no outs in the seventh.
Jonathan Villar and Chris Carter each homered in Houston's four-run seventh as the Astros dropped to 10-20. Carter also tripled and Marwin Gonzalez had three hits.
After Keuchel was pulled, reliever Jose Cisnero walked Mike Zunino to force home the tying run. Saunders then hit a two-run double, and Romero and Cano each added RBI singles. Kyle Seager doubled home a run before Smoak's two-run homer off Raul Valdes.
Seattle manager Lloyd McClendon was ejected in the seventh after the walk that loaded the bases. Catcher Jason Castro went to the mound to talk to Keuchel, and when he began walking back to the plate, McClendon was tossed for arguing by umpire James Hoye.
Carter hit an RBI triple to the center-field hill in the eighth and scored on Alex Presley's single, making it 9-8. After Yoervis Medina walked the bases loaded, Rodney induced Jose Altuve to fly out.
NOTES: After hitting the game-winning single Friday night, Astros rookie OF George Springer was given the day off Saturday. Springer, called up from Triple-A Oklahoma City on April 16, had started the last 14 games. ''It's more of just a breather,'' Houston manager Bo Porter said. ... Seattle OF Abraham Almonte, in a 4-for-37 slump in his last 10 games, was out of the lineup. ''That's why he's sitting, because it's not working,'' McClendon said. ''It's that simple. He's not playing because he's not producing.''