The Royals trailed by a run before scoring four times in the fifth and four Kansas City pitchers blanked the Rays over the final eight innings.
Butler singled in a run in the first, contributed a sacrifice fly in Kansas City's big fifth inning and had another RBI base hit in the ninth.
Salvador Perez also drove in runs with a fifth-inning single and a ninth-inning double.
Luis Mendoza (2-3) went six innings to get the win, allowing two runs in the first and scattering six hits.
Matt Moore (8-3) was roughed up for five runs on seven hits in 5 1/3 during what was Tampa Bay's third straight loss and fifth in its last six games.