Right fielder George Springer and first baseman Marc Krauss each hit two-run homers and ace southpaw Dallas Keuchel threw a complete game to help Houston split a four-game series and drop Seattle to 24-25 on the season.
Keuchel, who for much of the afternoon appeared at ease carving through a Mariners lineup that has struggled to score runs at home in 2014, gave up just four hits while striking out six and walking none.
Manager Lloyd McClendon was unimpressed.
"I saw average stuff. We didn't swing the bats very good," he said. "At some point, you've got to stop giving credit to average pitchers. That becomes a broken record. At some point, we've got to start swinging the bats."
Keuchel retired 14 in a row until Kyle Seager momentarily broke his rhythm with a single to right field with one out in the seventh. But Mike Zunino then grounded into a double play to end the frame, befitting a drizzly Pacific Northwest afternoon that forced the stadium's retractable roof to close before the game.
Zunino, who finished 1-for-3, said Keuchel (6-2, 2.55 ERA) kept Seattle off-balance and pitches low in the zone.
"When a guy's throwing as well as he is, you have to try to attack him early," Zunino said of Keuchel, whose one run allowed was unearned. "He did a great job of keeping the ball down with a fastball and changeup."
The Mariners manufactured their sole run in the second when Zunino and Michael Saunders hit back-to-back two-out singles, then Cole Gillespie followed with a swinging bunt down the third-base line. Keuchel fielded the ball cleanly, but threw wide of first base and into right field as Zunino came around to score. Gillespie was credited with the single and Keuchel a throwing error before shortstop Brad Miller, getting his first start since Wednesday, grounded out to end the threat.
"I made a bonehead throw," Keuchel said. "I felt I had enough time to make a good throw but kind of yanked it a little bit and was able to get Miller out from there."
Why couldn't Seattle's offense get going?
"It had nothing to do with approach," McClendon said after his club's batting average fell to .232. "We had four hits. You don't win games with four hits and one run."
Iwakuma allowed three singles in the second, but wiggled out of a bases-loaded jam when he induced catcher Carlos Corporan to ground into a 4-6-3 double play.
He wasn't as fortunate in the sixth. After Houston's Marwin Gonzalez started with a harmless groundout, Jose Altuve hit a soft flare into right field for a single. Then, Springer fell behind 0-2, laid off a sinker in the dirt and ripped a two-run homer to left field, giving the Astros a 2-1 lead. Springer has four home runs in his last three games and seven in May.
"From my standpoint -- you guys might not believe me -- I gave up nine hits but I don't feel like I gave up that many," Iwakuma said through interpreter Antony Suzuki. "They put up good at-bats, and I felt like they were sitting on certain pitches in certain situations. They did a good job in general."
In the seventh, Houston third baseman Matt Dominguez led off with a ground-rule double before Krauss hit a two-run shot into the right-field seats to seal the outcome.
"Giving up those two runs late in the ballgame kind of hurt the team," Iwakuma said. "That I'm going to have to reflect on."
Meanwhile, two of the Mariners hottest hitters cooled. Rookie center fielder James Jones went 0-for-4, snapping a 14-game hitting streak and marking the first time in 16 career Major League starts that he didn't record a hit. Robinson Cano went 0-for-4, ending his career-high streak of reaching base in 31 consecutive games, which also had been the longest active streak in the Majors.
Iwakuma (3-1, 2.39 ERA) allowed four runs on nine hits in seven innings, striking out six and walking none in his first loss of the season. He threw 94 pitches, 66 for strikes, two of which cost him.
"Overall, I had good stuff today," he said. "It was just those two pitches that I left up in the zone that they took advantage of and scored four runs. [Those were] the only two mistakes that I made today."