"That was a big pinch hit and it allowed us to extend the game," Houston manager Bo Porter said. "Corp has been doing a great job all year in that role we've had him in as a backup catcher. Every time we put him in the game he finds a way to make positive things happen."

Still, the Astros came up short despite a solid effort from Keuchel.

"Our starting pitching has been outstanding," Porter said. "Even throughout this stretch in which we lost some ballgames, it's definitely not to the fault of our starting pitching. They've done a great job."

The Astros made three errors to give them 47, tying the Los Angeles Angels for most in the AL.

"The defense has been solid all year," Porter said, "and tonight it let us down."

Iwakuma (7-1) gave up four hits, struck out eight and walked one while reducing his ERA to 1.79, second-lowest in the majors behind Boston right-hander Clay Buchholz (1.71).

"He has a great heartbeat. The game never speeds up on him," Mariners manager Eric Wedge said. "He does a great job of slowing things down and making every pitch have a purpose. When you get in those situations, those things need to happen."

The critical moment came in the seventh. With the Mariners up 2-1, Carlos Pena led off with a double and Chris Carter walked. Jimmy Paredes struck out and Pena reached third on a wild pitch before Iwakuma induced Dominguez to ground into an inning-ending double play.

"I just try to slow the game down, pitching with composure, and imagine that I would get a double play in that situation," Iwakuma said through a translator. "That was a two-seam, which went well for us."

Iwakuma has been particularly stingy at home. He leads the AL with a 0.92 ERA in six starts at Safeco Field, striking out 46 and walking three. In 24 career appearances there, including 16 starts, he is 9-3 with a 1.89 ERA.

"I feel very comfortable here and very used to the mound here," Iwakuma said. "That helps me out to have that advantage."

Marwin Gonzalez started the Astros' rally in the third with a one-out single. He is hitting .533 (8 for 15) against Mariners pitching this season.

Brandon Barnes attempted a sacrifice bunt. Iwakuma jumped on it quickly but his throw to second was dropped by shortstop Brendan Ryan for an error and Gonzalez raced to third.

That unearned run ended Iwakuma's scoreless streak at 23 2/3 innings, eighth-longest in franchise history. He has not allowed an earned run since the second inning on May 26 against Texas.

Ibanez tied the score with his solo shot in the fourth into the right-center seats off Keuchel (3-3). It was Ibanez's fourth home run off a left-hander this season. He did not have any during the 2012 regular season with the New York Yankees.

The Mariners worked to scratch out the go-ahead run in the fifth. Carlos Triunfel, who has had two brief call-ups this season, broke an 0-for-13 skid with a single to open the inning. Jason Bay followed with a hard grounder to the left of Dominguez, who dived to stop it at third base. His only play was to first as Triunfel slid safely into second.

Kyle Seager then bounced back to the pitcher, who turned to catch Triunfel in a rundown. Triunfel dodged the tag long enough to allow Seager to reach second. Kendrys Morales then hit a high bouncer to Dominguez, who rushed his throw to first and Carter could not dig it out.

Seager raced home on Dominguez's throwing error for a 2-1 lead.

"You just have to keep plugging away," Porter said. "It's like we talk about, the break points, and right now we're losing those critical break points and the other teams are capitalizing. Give Seattle credit tonight, they capitalized on our mistakes."

Morse's RBI double in the seventh sent Bay home from third for a 3-1 lead.