HOUSTON -- The Seattle Mariners are next-to-last in the American League in scoring. Playing the only team below them gave their offense a boost.
"We have had a habit of doing it all in one inning," Smoak said. "It was good to get something going there. We got it going, kept it going and were able to hold on there at the end."
Given a 2-1 lead, Dallas Keuchel (2-2) left after walking the first three batters of the seventh. Jose Cisneros forced in the run that made it 2-2 when he walked Mike Zunino, and Mchael Saunders followed with a two-run double.
Stefen Romero and Robinson Cano added RBI singles, Kyle Seager doubled in run and Smoak's two-run homer off Raul Valdes made it 9-2. The inning was Seattle's highest-scoring since getting eight in the second at Texas on May 30, 2012.
"A win is a win," Seattle manager Lloyd McClendon said. "People say you win ugly. I don't buy that. A win is a win. I told you guys, playing great and losing, you don't get the ice cream. We get ice cream tonight. That's all that counts."
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 by plate umpire James Hoye for arguing.
"I told him that the manager told the catcher to go talk to the pitcher," McClendon said. "I said he had been out there once. Obviously, he was trying to get more time. That could be construed as a trip to the mound. I said it was in the rule book, and he threw me out."
Iwakuma (1-0) made his first appearance after starting the season on the disabled list because of a sprained right middle finger. He allowed four runs and six hits in 6 2/3 innings; the Astros stopped his consecutive scoreless innings streak at 25 dating to last year.
"Overall, today's game I was able to pitch well," Iwakuma said through a translator. "I was able to command both sides of the plate and that helped with pretty much all my pitches."
Fernando Rodney escaped a bases-loaded jam in the eighth and finished for his seventh save.
Keuchel allowed four runs and four hits with three strikeouts, leaving after walking the bases loaded with no outs in the seventh.
"Out of the gate, I didn't really feel too well, but I had some early contact. Some ground ball outs kind of got me in a groove," Keuchel said. "It feels like a train hit me in the seventh. It's not like me to walk three guys in a row. I felt like a couple of those pitches were close, but the umpire has the final say."
Keuchel took a two-out shutout into the fifth, then gave up an RBI single in the sixth that closed the Mariners to 2-1.
"A couple times through the order, he was able to keep us off balance," Zunino said. "We were able to get some good at-bats together and cycle through. Once guys start feeling good, it starts opening up for everyone."
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.
"Great response," Houston manager Bo Porter said. "Those guys, it's a credit to them. They keep plugging away. We talk about it all the time. Regardless of what happens, every at-bat counts. Grind your at-bats out, and today was a prime example of that, and we put ourselves in position to make a huge comeback."
After hitting the game-winning single Friday night, Astros rookie OF George Springer was given the day off. Springer, called up from Triple-A Oklahoma City on April 16, had started the last 14 games. "It's more of just a breather," 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."