Cain caps KC rally; Central clinch number: 2

Cain caps KC rally; Central clinch number: 2

KANSAS CITY -- Lorenzo Cain singled in pinch-runner Paulo Orlando from second base with one out in the 10th inning as the Royals rallied for a 4-3 walk-off victory over the Mariners on Wednesday night at Kauffman Stadium.

Cain's game-winner -- his third hit of the night -- was off reliever Tony Zych, who came on to replace David Rollins with runners on first and second.

"We were kind of slipping in the mud a little bit," Royals manager Ned Yost said. "All of a sudden, we got some traction later in the game."

The Royals' magic number to clinch the American League Central dropped to 2, as the Twins posted a 4-2 win over the Indians. Kansas City's lead over Toronto for home-field advantage throughout the postseason remained at 1 1/2 games. The Royals can clinch the division on Thursday night with a win and a loss by the Twins.

Cain gets walk-off bath

Would Cain like some champagne?

"That would be nice," Cain said. "Don't want to get ahead of ourselves, but champagne would be nice."

The Royals tied the score in the ninth off reliever Tom Wilhelmsen when Jarrod Dyson hit a sacrifice fly with the bases loaded to score Cain.

Dyson's game-tying sac fly

"A couple base hits in a row, some good baserunning followed by some walks. That's usually not a good recipe," said Wilhelmsen, who sustained his first blown save in 13 opportunities this season. "They're an aggressive swinging team and I knew that coming in. I made some decent pitches, but not decent enough, I guess."

Mariners second baseman Robinson Cano delivered the 2,000th hit of his career with a two-out single in the eighth inning off Kelvin Herrera.

Must C: Cano's 2,000th hit

Roenis Elias worked 5 1/3 innings for the Mariners and gave up just four hits and one run. He struck out six before turning it over to the bullpen.

Royals starter Yordano Ventura cruised through the first four innings, allowing only two hits to Ketel Marte. He lasted six innings, giving up six hits and three runs while striking out four.

A day for Marte: Seattle's 21-year-old shortstop didn't seem to have any problem with Ventura's upper-90s fastballs, going 3-for-3 against his fellow Dominican, including the two-run triple into the right-center gap in the fifth. Marte then scored on Nelson Cruz's base hit to give the Mariners a 3-1 lead. Marte, who has been batting leadoff since being promoted from Triple-A on July 31, extended his hitting streak to 11 games, during which he's batted .409 (18-for-44) to hike his season average to .298.

Cruz's RBI single

"I was looking for that pitch because he throws a lot of fastballs," Marte said of his triple. "Everytime I'm looking for fastballs and when he threw me one, I put a good swing on it."

Leaving 'em full: Elias, making his first start in 11 days, was wobbling in the fourth after giving up a run on Alex Rios' sacrifice fly and then walking the bases loaded. But with rookie Rollins warming in the bullpen, Elias got Ben Zobrist to ground into an inning-ending forceout on a first-pitch fastball. The 26-year-old southpaw then stuck around long enough to pitch 5 1/3 innings of one-run ball and put himself in position for the win until the Royals rallied against the 'pen.

Elias' one-run outing

"He settled down and battled and actually gave us a pretty good effort," said Mariners manager Lloyd McClendon.

Stranded runners: The Royals had another golden opportunity in the bottom of the sixth off Mariners reliever Danny Farquhar. Salvador Perez singled and Alcides Escobar then doubled with two out. But Farquhar got Alex Gordon to hit a soft roller to second base, ending the threat and keeping the Royals in a two-run deficit. The Royals stranded nine runners through the first six innings.

"We missed some opportunities for sure," Yost said. "The majority of them were all two-out opportunities. You know how good this club is when it's going right. We pick up those two-out opportunities and gather a bunch of RBIs in those spots. We just couldn't capitalize on it."

No balk: The Royals chipped away with a run in the seventh when Cain doubled with one out and Eric Hosmer singled him in, cutting the lead to 3-2. But then, Mariners left-hander Joe Beimel picked off Hosmer at first. Hosmer had a very short lead and got up questioning first-base umpire Pat Hoberg whether the move was a balk. That, of course, is unreviewable and the inning ended moments later when Kendrys Morales struck out.

Beimel picks off Hosmer

Perez was taken out after the seventh inning because of a bruise on his left knee. The Royals said the move was just precautionary. Perez made an awkward turn on the bases at third base in the sixth and landed on his knee.

Perez leaves game in the 8th

Mariners: Left-hander James Paxton (3-4, 3.70 ERA) will get the ball on Thursday at 5:10 p.m. PT for the finale of this three-game set at Kauffman Stadium. He's made two starts since coming off the disabled list with a finger injury, but hasn't lasted longer than 4 1/3 innings.

Royals: Ace Johnny Cueto (9-12, 3.43) will start the series finale on Thursday at 7:10 p.m. CT. The right-hander snapped a string of five straight sub-par outings last time out by going seven-plus innings and allowing just two earned runs in a no-decision against the Tigers last Friday.

Watch every out-of-market regular-season game live on MLB.TV.

Jeffrey Flanagan is a reporter for Follow him on Twitter at @FlannyMLB. Greg Johns is a reporter for Follow him on Twitter @GregJohnsMLB, read his Mariners Musings blog, and listen to his podcast. This story was not subject to the approval of Major League Baseball or its clubs.