HOUSTON -- Robinson Cano improved Seattle's playoff chances with one mighty swing on Monday night.
Cano hit his second homer of the game with two outs in the 11th inning, lifting the Mariners over the Houston Astros 4-3.
Houston scored two runs in the ninth, but then Cano sent a slider from Luke Gregerson (4-3) into the second deck in right field to win.
"This is the time you've got to give everything you've got," Cano said. "After this you can go home and rest. So you don't want to rest yet."
The victory moves Seattle two games behind Baltimore for the second AL wild card and drops Houston, which has lost four of five, to 3 1/2 games back in the race.
"We've got a chance," Mariners manager Scott Servais said. "That's what we've been playing for and the guys, you can feel it, they really believe."
Drew Storen (4-3) pitched a perfect 10th for the win. Nick Vincent allowed consecutive singles to Jose Altuve and Carlos Correa before retiring the next two batters in the 11th for his third save.
"We're doing the best that we can to salvage what we can and fight through this and get as many wins as we can," manager A.J. Hinch said. "We're just having a hard time getting those wins in the last four or five games."
Cano doubled in the first inning and his home run in the third made it 2-0. He's been great against the Astros this season with eight homers, four doubles and 22 RBI in 17 games. His big night gives him a career-high 35 homers this season, which matches the number he hit in his first two seasons with Seattle combined.
"Huge game by Mr. Cano tonight," Servais said. "Can't say enough. He's got his timing, rhythm back and he's swinging at good pitches and his swing has come back and we certainly needed it."
The Astros trailed 3-1 entering the ninth when George Springer singled off Edwin Diaz with no outs before advancing to third on a single by Marwin Gonzalez. Altuve grounded into a force out that left Gonzalez out at second and scored Springer to get Houston within 3-2.
Altuve stole second base before the Astros tied it on an RBI single by Correa.
Evan Gattis followed with a single to leave Correa at third, but Diaz retired the next two batters to send it to the 10th.
Mariners went up 1-0 when Seth Smith scored on a groundout by Nelson Cruz in the first.
Cano made it 2-0 when he homered into the bullpen in right-center field with one out in the third.
The Astros hadn't had a baserunner since the second inning when Jake Marisnick drew a walk with one out in the sixth inning. The Astros cut the lead to 2-1 on an RBI double by Gonzalez with two outs. Altuve singled after that, but Gonzalez was thrown out at home on the play to end the inning.
The Mariners added a run in the ninth inning when Ben Gamel bunted and reliever James Hoyt badly overthrew first base for an error that allowed Ketel Marte to score from first. The play elicited a smattering of boos from the sparse crowd.
Hisashi Iwakuma allowed four hits and one run in six innings to bounce back after allowing six runs in 3 1/3 innings in his last start.
Houston starter Collin McHugh yielded six hits, two runs and struck out six in seven innings.
Mariners: Cruz was in the lineup despite dealing with a sore left wrist. He was lifted in the eighth inning on Sunday with the injury and scaled back his pre-game work on Monday to limit his discomfort.
Astros: OF Colby Rasmus is done for the season because of a hip and groin injury. Rasmus, who hasn't played since Sept. 18, will seek a second opinion on his injury. ... Houston RHP Lance McCullers, who has been on the disabled list since Aug. 3 with an elbow strain, has left Houston and will continue his rehabilitation at the team's spring training facility in Florida. Hinch said McCullers will throw live batting practice there before they decide his next step.
Mariners: Felix Hernandez (11-6, 3.61) will start for Seattle on Tuesday. Hernandez will pitch in Houston for the first time since June 12, 2015 when he allowed five hits and eight runs in 1/3 inning of a 10-0 loss, tying the shortest start of his career.
Astros: Mike Fiers (11-8, 4.50) is scheduled to start for the Astros on Tuesday. Fiers allowed four hits and two runs in 6 1/3 innings of a 2-0 loss to the Angels in his last start.