With Marc Rzepczynski (0-3) on the mound, Lorenzo Cain led off the 14th with a single and then stole second with John Axford on the mound. Danny Valencia then struck out, but Aoki hit a grounder down the third base line and into left field as Cain raced home for the win.
Mike Moustakas scored the other run in the contest for the Royals, who have won three straight. Aaron Crow (5-1) got the win for striking out the side in the top of the 14th.
Yan Gomes drove in the only run of the game for the Indians, who have dropped four of their last five. Carlos Santana had two hits and scored a run.
Corey Kluber carried a perfect game into the seventh inning and went nine innings for Cleveland as he gave up an unearned run on two hits with 10 strikeouts and no walks.
Danny Duffy pitched well for Kansas City in the start, giving up just two hits and two walks while striking out seven in seven shutout innings of work.
“I actually thought that we had a chance to finish this game before it got dark,” Royals manager Ned Yost said facetiously. “The game was going. Kluber was unbelievable. (Duffy) was unbelievable.”
Kluber went through the Kansas City lineup twice without a blemish, striking out seven and allowing just two balls to leave the infield.
He then got Jarrod Dyson to pop out for the first out of the seventh inning, but Omar Infante followed with a grounder up the middle for a single.
Infante was quickly caught trying to steal second base, and Alex Gordon struck out to end the inning.
Duffy was holding his own as he set down the first 12 Indian batters he faced and pitched out of a jam in the fifth after allowing the first two batters to reach on a single and a walk.
In the eighth with Wade Davis on the mound and one out, Jose Ramirez singled and Jason Kipnis walked. David Murphy then singled to load the bases, but Michael Brantley hit into an inning-ending double play.
The first run of this game came in the eighth inning as Moustakas lofted a fly ball to left field. Ryan Raburn tried to run it down and make a sliding catch, but the ball went off his hand and fell.
Moustakas was heading to second base when Raburn picked the ball up in foul territory. On his attempted throw, he spiked the ball into the ground and it rolled towards center field, with Moustakas coming home for a 1-0 lead.
“You come up to throw it into the infield, tried to hold up, but couldn’t hold up,” said Raburn. “(Kluber) definitely didn’t deserve to get the loss and at the time that’s all I could think about.”
Cleveland, though, tied the game in the ninth as Greg Holland gave up a leadoff walk to Santana and Chris Dickerson sacrificed him over. A groundout from Nick Swisher put the tying run 90 feet away and Gomes’ liner to center tied the game.