Jarrod Dyson and Josh Fields each hit a two-run homer for the Royals, who snapped a three-game slide. Kyle Davies went 3 1/3 innings and was banged up for seven runs on eight hits. Philip Humber (2-1) was credited with the win as he gave up just a run in 2 2/3 relief innings.
Minnesota has already clinched the AL Central, but failed in its chance to move into a tie for the top spot in the American League standings.
A two-run double from Kubel was followed by an RBI double from Michael Cuddyer in the first to give the Twins a 3-0 lead.
Kansas City, though, used a six-run second to take the lead. An RBI groundout from Yuniesky Betancourt was followed by a two-run double from May. Two batters later, Dyson belted a two-run homer and Billy Butler's RBI single later in the frame made it a 6-3 game.
A sacrifice fly off the bat of May in the third gave the Royals a 7-3 lead.
However, the Royals came storming back in the fourth as Kila Ka'aihue's sacrifice fly was followed by a two-run home run from Fields for a 10-8 lead.
Gil Meche worked a 1-2-3 eighth, while Joakim Soria induced a fly out from Danny Valencia in the ninth that saw Jason Repko doubled up off first to end the game and give Soria his 42nd save of the year.
Minnesota has taken 12 of the 16 games with Kansas City this season...Kubel has 21 home runs and 92 RBI on the season...The Twins left seven men on base in the game.