Butler homered for the second consecutive game and the Royals overcame a five-run deficit to beat the Indians 7-5 on Saturday night for their fifth straight win.
A day after his pinch-hit, two-run homer in the eighth inning beat Cleveland, Butler connected for a tiebreaking shot in the fifth inning. It was 5-5 when he tagged Nick Hagadone for a 433-foot drive over the Royals bullpen in left field, 11 feet further than Friday's shot.
"I've never been a guy that's usually gotten distance," Butler said. "I caught the last two pretty good. Maybe I'm starting to figure it out and starting to put the barrel on it.
"I got a good pitch and got a good result. I'm just going to keep building off that."
The pitch was a mistake by Hagadone.
"It was supposed to be down and away," Hagadone said. "It was an 0-1 fastball that was down and in the middle. He hit it pretty good. He put a good swing on it. Once he hit it I knew it was gone."
Carlos Santana hit his third homer in two games for Cleveland, which has lost six of seven.
Jeremy Guthrie (6-9) won despite giving up five runs, 10 hits and two walks in 5 2/3 innings.
"I didn't feel as bad as the results were in the second inning," Guthrie said. "I just couldn't make a big pitch to get anybody out. They started banging around a little when I got a little tired. I really just felt frustrated. I understood the bullpen needed a rest today.
"I wasn't certainly going to accomplish that goal as much as I wanted to after the second inning. At that point, I wanted to get as many quick outs as possible."
Greg Holland, the fourth Kansas City reliever, got his 27th save in 29 chances.
Guthrie had lost his previous three starts. He has an 8.44 ERA in three starts this season against the Indians.
The Indians scored five times in the second. Santana led off with a home run, and Jason Kipnis broke an 0-for-11 rut with a two-run double.
"Jeremy had a hard time stopping the bleeding in the second," Royals manager Ned Yost said. "But he doesn't let much bother him. He's very calm and very composed."
Santana is 12 for 25 with six RBIs in his last six games.
"Right now I see the ball very well," Santana said. "I feel comfortable. I'm not thinking too much. I'm enjoying my time and enjoying my game."
McAllister, just brought up from Triple-A Columbus after going 5-0 with a 2.23 ERA, faced 22 batters and 10 reached base. After starting the season 3-0, he is 0-6 in nine starts.
"When they scored those runs I just kind of fell behind," McAllister said. "I wasn't able to mix when I needed to, and they were able to put the ball in play."
Omar Infante had an RBI grounder in the third, and the Royals tied it with four more in fourth. Nori Aoki hit a two-run triple with two outs and scored on a passed ball to tie it.
3B Lonnie Chisenhall was scratched from the Indians lineup because of an illness. ... Indians SS Asdrubal Cabrera hasn't played since Monday because of back spasms. ... Aoki batted first for the Royals after hitting in the bottom third of the order for seven games since being activated July 11 from the disabled list. He opened the season batting leadoff. ... The Indians optioned RHP Josh Tomlin, who was 5-7 with a 4.47 ERA, to Triple-A Columbus. ... Royals LHP Bruce Chen will make his seventh start Sunday and his third since coming off the disabled list on June 24.