The 31-year-old Japanese standout has the lowest ERA of any AL starter with at least 15 appearances since last year's All-Star break: 2.14 in 29 starts.
"He's been about as consistent as any pitcher in baseball, and for quite a while now," said Mariners manager Eric Wedge.
With Felix Hernandez at the top of the rotation, Iwakuma has been a revelation as a second strong All-Star caliber hurler for a club that improved to 28-37 with the win.
"This is basically what we've come to expect from him now, and it's pretty awesome," said shortstop Brendan Ryan.
The win avenged Iwakuma's lone loss this season, a 3-2 defeat in Houston on April 23. The 6-foot-3 right-hander has been almost untouchable at home, where he's now 3-0 with a 0.92 ERA, striking out 46 batters compared to three walks over 48 2/3 innings in seven outings this season.
Iwakuma compared his initial success this season to the start he had with the Rakuten Eagles in Japan in 2008, when he went 21-4 with a 1.87 ERA and won Pacific League Most Valuable Player honors.
"Usually when I have a good start, I have a good year," he said through translator Antony Suzuki. "So that's a good sign. I think it's very similar. I'm at a very good stage right now."
Iwakuma saw his scoreless-innings streak end at 23 2/3 when the Astros pushed across an unearned tally in the third after Ryan missed a potential double-play throw from Iwakuma on a comebacker with one out.
Iwakuma hasn't allowed an earned run since the second inning of a May 26 game against the Rangers, a stretch of 28 2/3 innings. He needed to dig deep in the seventh to keep that string intact after Carlos Pena doubled leading off and Chris Carter followed with a walk.
But Iwakuma worked out of that trouble by striking out Jimmy Paredes, then getting Matt Dominguez to hit a double-play grounder to second after Carter moved to third on a wild pitch.
"Like always, I was just trying to slow the game down and pitch with composure and imagining that I'd get a double play in that situation," Iwakuma said. "That was a two-seam that went well for us."
The unearned run came when Jose Altuve drove in Marwin Gonzalez from third with a sacrifice fly to give the Astros a 1-0 lead. Iwakuma's scoreless-inning streak was the eighth longest in team history and fifth longest for a starter, with the record of 34 set by Mark Langston in 1988.
Ryan said he's enjoying playing behind Iwakuma and hears often from opposing players about how tough the emerging ace is to face.
"It's funny, because not too many guys are getting to second base, but it seems like every game out there I got a comment about how nasty he is, and that's pretty cool," said Ryan. "They're usually going out of their way telling me how uncomfortable they are at the plate. But it's true.
"I'm seeing every pitch, and the next pitch works off the previous one," Ryan said. "He throws that four-seamer that is downhill and flattens out and looks like it's going to be down, but it's at the knees. Then he's got the splitter off that, and the changeup and the big curveball to get ahead sometimes. He's got a complete repertoire and he uses it intelligently."
The only question was whether the Mariners would give Iwakuma enough run support for the win. Raul Ibanez hit his team-leading 12th homer in the fourth to tie the game at 1.
Seattle scored the go-ahead run in the fifth, when Kyle Seager raced home from second on a high-hop single to third by Kendrys Morales, scoring when Dominguez's low throw got past Carter at first base.
The Mariners finally gave Iwakuma a little cushion in the seventh with an RBI double by Michael Morse, which proved decisive.
Houston scored once off closer Tom Wilhelmsen in the ninth on an RBI single by pinch-hitter Carlos Corporan before Wilhelmsen finished things off for his 16th save and fourth straight since a rough patch at the end of May.
Astros southpaw Dallas Keuchel, making his seventh start of the season, allowed just two runs (one earned) in six innings to even his record at 3-3.
"I knew I was in for a battle with Iwakuma, and he just happened to be better than me tonight," said Keuchel.
Seager's 13-game hitting streak came to an end with an 0-for-5 night, but rookie second baseman Carlos Triunfel picked up his first hit of the season in his 14th at-bat with a fifth-inning single.