SEATTLE -- The Kansas City Royals used some more extra-inning heroics to keep their slim postseason hopes alive late Monday night. Catcher Salvador Perez delivered the big blow with a two-out, RBI double in the top of the 12th inning to help beat the Seattle Mariners 6-5.
Kansas City (83-73) won its second extra-inning game in as many nights to move within three games of idle Cleveland in the race for the second American League wild-card spot. Texas (85-71) is now one game behind the Indians in the wild-card race.
Kansas City closer Greg Holland came on in the bottom of the 12th and shook off two walks to earn his 45th save of the season, matching a franchise record that was last accomplished by Jeff Montgomery in 1993.
Perez came through in the top of the 12th, driving in Alex Gordon from second base after that same duo helped Kansas City narrowly avoid a 6-5 loss two innings earlier.
Gordon's throw to Perez from left field in the bottom of the 10th inning barely beat base-runner Kyle Seager at the plate for the final out.
With the bases loaded in the 10th, Gordon caught a fly ball from Seattle's Endy Chavez for the second out of the inning, then threw out Seager at home plate to preserve a 5-5 tie. Perez fielded the throw just to the right of home plate and made a sweeping tag that barely caught Seager just above his elbow.
Two innings later, with the score still tied 5-5 and runners on first and second, Perez came to the plate with two outs. He doubled into the left-field corner, easily scoring Gordon from second before Kansas City's Johnny Giavotella was thrown out at home to keep the Mariners within 6-5.
Mariners reliever Lucas Luetge (1-3) suffered the loss on a night when Seattle used seven pitchers. The Mariners (68-89) are now 6-15 in extra-inning games.
Kansas City reliever Wade Davis (8-11) earned the win on a night when rookie Yordano Ventura turned in another stellar start with little to show for it. Ventura allowed just two hits and one run over 5 2/3 innings and left the game with a 2-1 lead in the sixth.
Both teams rallied from deficits in the seventh and eighth innings in a game that saw Kansas City clinging to a 2-1 lead heading into the bottom of the seventh.
Back-to-back solo homers from Seattle's Franklin Gutierrez and Michael Saunders in the bottom of the eighth tied the score 5-5.
A three-base error charged to Kansas City center fielder Jarrod Dyson allowed Saunders to score the tying run from first base in the seventh inning. The Mariners' Nick Franklin then drove in the go-ahead run with an RBI single for a 3-2 lead.
Kansas City responded with a three-run eighth that was also made possible by an error. A potential inning-ending double play came up short when second baseman Nick Franklin's throw to first bounced short of its target. Instead of getting out of the inning with the score tied 3-3, Seattle saw two more runs score as Kansas City pulled ahead 5-3.
Seattle starter Brandon Maurer turned in one of his best performances of the season while allowing two runs - one earned - off four hits over seven innings.
Left-hander Charlie Furbush replaced Maurer to open the eighth, and he allowed all five of the batters he faced to reach base - two of them by way of fielder's choices. Furbush was charged with three runs off three hits in 2/3 innings of work.
The Royals used three consecutive singles and a throwing error by Seattle right fielder Abraham Almonte to score two runs in the top of the fourth, giving Kansas City a 2-0 lead. Billy Butler singled to right with runners on first and third to drive in the first run. The second run scored when Almonte tried to throw out Eric Hosmer at third base on the play and ended up sending the ball into the visiting dugout.
Ventura, making his second career appearance, began the game well by striking out the side in the bottom of the first inning. He retired the first four batters he faced and didn't allow a baserunner to get past first through five innings.
Notes: Kansas City manager Ned Yost said RHP James Shields is not expected to miss a start despite the bruised right elbow he suffered Sunday. Shields took a David Murphy line drive off his elbow in the third inning of Sunday's game but did not come out. Yost said before Monday's game that Shields is "a little bruised, a little sore, (but) he's fine." Shields' next scheduled start is Friday against the Chicago White Sox. ... Mariners SS Brad Miller was back in the lineup Monday for the first time since Sept. 14. Miller had been battling a sore hamstring, and his only at-bat of the previous seven games came as a pinch hitter in Saturday's loss to the Angels. ... Before Monday's game, the Mariners held a moment of silence to recognize the passing of team owner Hiroshi Yamauchi, who passed away last week at the age of 85. Monday marked Seattle's first home game since Yamauchi's death. ... Monday's official attendance was 12,790, marking the fourth consecutive meeting between these two teams played in front of fewer than 15,000 fans. The previous three were in Kansas City earlier this month.