SEATTLE -- Zack Greinke came within two outs of pitching the third no-hitter by the Houston Astros this year, losing his bid on a single by Seattle rookie Austin Nola in the ninth inning of a 3-0 win over the Mariners on Wednesday night.
Greinke (18-5) was in complete control while trying for his first career no-hitter. He drew cheers from the orange-shirted Astros fans when he took the mound to begin the ninth and retired Tom Murphy on a grounder.
Nola, in an 0-for-16 slump, was up next and dumped a liner into shallow left-center field. Center fielder Jake Marisnick made a diving attempt but came up well short and pounded his fist on his leg.
Greinke gave up another single to Tim Lopes and was replaced after throwing 108 pitches. Will Harris got his third save, striking out Shed Long and retiring J.P. Crawford on a lineout.
Houston posted its franchise-high 104th win and moved one step closer to home-field advantage throughout the postseason. The Astros nearly became the first team in major league history to throw three no-hitters in a season, while Seattle barely avoided becoming the first team to be no-hit three times in a year.
Greinke struck out nine and walked one. His performance put a capper on Houston's mastery of the Mariners as the Astros finished the year 18-1 against Seattle.
Part of that dominance was the Astros combining to no-hit the Mariners on Aug. 3. That game was started by Aaron Sanchez and included contributions from Harris, Joe Biagini and Chris Devenski.
Justin Verlander also threw a no-hitter earlier this month against Toronto.
Greinke saw a no-hit bid earlier this season against Washington broken up in the seventh inning. After that no-no disappeared, Greinke said, "I don't really think about [no-hitters] that much. I just assume I'll never throw one.''
"Just probably be more hassle than anything,'' he said.
Anyhow, he almost did, finally.
Until Nola's hit, the closest Seattle came to a base hit was Omar Narvaez's line drive back up the middle with one out in the eighth inning. Greinke, a five-time Gold Glove winner, got his mitt up in time to make the grab and keep the no-hitter intact.
The right-hander mixed a well located fastball all night, with a selection of off-speed pitches that left the Mariners whiffing at air. The All-Star lost his perfect game in the sixth when he walked Dee Gordon, ending his streak of consecutive innings without a free pass at 29⅓. He got out of the inning with a double play. His final strikeout came on a 64 mph off-speed pitch to Kyle Seager to end the seventh inning.
Houston got all the runs it needed in the first inning. George Springer singled to lead off the game against Yusei Kikuchi. Alex Bregman and Yordan Alvarez followed with RBI doubles for a quick 2-0 lead. Kikuchi (6-11) settled down and held Houston scoreless over the next five innings, striking out four with no walks.
Kyle Tucker made it 3-0 with a solo home run in the top of the ninth.
TRAINER'S ROOM
Astros: There is growing concern about SS Carlos Correa's tight lower back. Correa missed Tuesday's game after the long flight from Houston. He expected to be ready for Wednesday, but was unable to play and won't suit up for the first game of series against Los Angeles on Thursday because of a late arrival. Correa, who returned from the 10-day injured list on Sept. 17, said he would play if the Astros were in the playoffs.
"I think it is smart for us to play it more cautiously,'' Houston manager AJ Hinch said. "I'll feel better when he's on the field. There's a certain timing and rhythm and playing that he needs to do to make us all feel better. He played very well when he was active a few days ago.''
UP NEXT
Astros: LHP Wade Miley (14-6, 3.91 ERA) will take the mound in the first game at the Los Angeles Angels.
Mariners: RHP Felix Hernandez (1-7, 6.51 ERA) will make likely his final start for the Mariners after 15 seasons in Seattle.