"I always tell him how bad he is," Greinke said about Soria and laughed. "How he's not good enough to be a starter and that he doesn't throw hard. That he signed a bad contract. I just never give him credit for anything. I tell him his curveball and changeup are going to get hit soon."
Greinke (8-11), who won the 2009 AL Cy Young Award, is 7-3 in his past 12 starts after starting the season 1-8. He held the Indians to one run and five hits over six innings, lowering his ERA to 3.90.
Soria worked around a leadoff single by Michael Brantley in the ninth to tie for the AL lead in saves. The right-hander has converted 27 consecutive chances since a blown save May 6 at Texas.
"Both were way off the plate," Acta said. "Those guys do a good job and you aren't supposed to criticize them, but sometimes you wonder. It's the No. 3 and cleanup hitters. Basically, you feel like they took the bat out of their hands. They should let those two guys battle -- the closer against one of those guys. I hope he sees it after the game. It's not fair."
The Indians wasted several scoring opportunities, stranding 12 and going 1-for-9 with runners in scoring position.
"I can't do anything if the umpire calls them strikes," Choo said. "If I swing at that pitch, it's a foul ball. I can't change anything about it. It's in the past already."
Betancourt homered, his 11th, to left in the fifth to tie the score at 1. Betemit put the Royals ahead to stay by leading off the sixth with his sixth home run, which landed in the back of the Royals' bullpen.
"The two homers was about all we needed," Royals manager Ned Yost said. "Zack struggled with his command. He was getting his pitches down. If you're going to miss, that's the place to miss. His stuff was really, really good. He gave up only one run and he pitched out of a jam."
The Royals have scored three runs in their past two games and won both.
"We kind of go in spurts," Greinke said. "We've been pitching good lately. Most of the year, we've been hitting and not really pitching good. Right now, we're pitching good."
Indians rookie right-hander Jeanmar Gomez (3-1) was handed his first loss in five big league starts. Gomez allowed seven hits in six innings.
"My sinker was good," Gomez said. "I made a couple of mistakes. They were both homers, both on sinkers."
Jesse Chavez, who replaced Greinke, walked the bases loaded with two outs in the seventh before striking out Nix to end the inning.
Royals right-hander Brian Bannister, who has not pitched since Aug. 2, was placed on the 15-day disabled list with right rotator cuff tendinitis. Bannister is 7-11 with a 5.95 ERA in 22 starts. Kansas City recalled outfielder Jai Miller from Triple-A Omaha, where he was hitting .267 in 84 games. Miller batted .345 with six home runs and 15 RBIs in 15 August games in the Pacific Coast League. ... Third baseman Josh Fields, out all season following hip surgery, had his minor league rehab assignment transferred by the Royals to Double-A Northwest Arkansas after going 4-for-10 with four RBIs in three games with Surprise in the rookie Arizona League. Cleveland's Shelley Duncan, in an 0-for-19 skid, grounded out as a pinch-hitter to end the eighth. The Indians and Royals met for the first time since May 20. There were seven new faces in the lineups Tuesday that did not play in that game May 20.