Joe Randa and Raul Ibanez each had two hits and drove in three runs for the Royals, who snapped a three-game losing streak.
Mike Sweeney had an RBI single and Randa hit a two-run double in the first inning to give Kansas City a 3-0 lead that held up until the fifth, when Bobby Kielty hit a solo home run, his second of the season.
Randa drove in his third run of the game with a single in the sixth, but David Ortiz got the run right back in the bottom of the frame with his fourth homer of the season.
Carlos Beltran hit a three-run homer in the seventh before the Royals pounded relievers Bob Wells and Jack Cressend in the eighth to stop Minnesota's four-game winning streak.
Paul Byrd (3-0) allowed three runs and five hits in six innings for the win. The journeyman righthander struck out four without a walk.
Brad Radke (2-1) lasted just 5 2/3 innings, allowing four runs and seven hits.