The Rays had just one homer, but Carlos Pena's two-run smash in the ninth against reliever Leo Nunez effectively put the game out of reach.
Rays starter Edwin Jackson held the Royals hitless until there were two out in the fifth inning. Butler broke the spell with a whopper shot of 426 feet to dead center field.
"He threw good, just kept us off balance for a while there," Butler said. "We hit it at people. David [DeJesus] hit quite a few balls hard tonight. We just couldn't get a break."
The Rays did get the breaks against Bannister, thanks to some defensive glitches.
The Royals missed a double play in the first inning when second baseman Mark Grudzielanek was off the bag after receiving shortstop Mike Aviles' flip. That cost them when Evan Longoria rapped a two-out RBI single.
The Rays went up 2-0 in the top of the fifth when there were two miscues by the middle infielders. B.J. Upton doubled with one out and Carl Crawford's liner was caught nicely by Grudzielanek. However, he tried to flip the ball to Aviles at second and misfired. The error allowed Upton to take third.
Longoria walked and Pena then hit a liner toward Aviles, who was positioned perfectly behind the bag.
"As soon as he hit it, I said, 'We're out of the inning,' and it started knuckling," Aviles said. "It was a lot tougher play than it looked like from the stands, I can tell you that much."
The floater glanced off the tip of Aviles' glove and Upton scored on the error.
After Butler's homer, the Rays went ahead, 3-1, in the sixth. Dioner Navarro doubled and when Bannister hit Jason Bartlett with a pitch, he was relieved by Ramon Ramirez. Akinori Iwamura's single loaded the bases and Upton's sacrifice fly scored Navarro.
"It's good to show some power, but we've got to make fewer mistakes against a team of that quality," Royals manager Trey Hillman said. "The mistakes we did make always come back to bite you, especially against a first-place team."
Buck led off the sixth with his home run and, after a walk, Jackson was lifted, despite giving up just two hits. Both were homers, of course.
The score was still 3-2 when DeJesus led off the eighth with a walk. But Aviles, trying to sacrifice, bunted into a forceout.
"I didn't do my job," Aviles said. "My job there is to get the bunt down and I bunted a little too hard. Basically it played right to their defense. They were crashing and it went right to 'em."
So that fizzled and after Nunez walked Longoria with two out in the ninth, Pena drilled his home run just barely over the right-field wall for a 5-2 lead.
"I got a slider up. I was trying to go down with it," Nunez said. "It's baseball, you know."
Rays closer Troy Percival got two outs in the ninth before Gload lofted his home run down the right-field line. Buck flied out to end the game.
Three homers by the Royals and only a loss to show for it.
"It would've helped to have a couple of guys on base when we did it but what can you do?" Buck said.
"We played a good ballgame, but we just gave them a couple of extra outs and those couple of runs hurt us at the end."