The rally made a winner of Francisley Bueno (1-0), who tossed 1 2/3 scoreless frames, and Greg Holland picked up his seventh save in the bottom of the 12th as the Royals evened their four-game series at one win apiece.
Alex Gordon drove in four runs for Kansas City, which overcame a 9-3 deficit with a six-run outburst in the seventh inning capped by a two-run triple from Mike Moustakas.
Mauro Gomez went 4-for-6 with three RBI -- including his first major league homer -- and Mike Aviles added a three-run shot for the Bosox.
The demoralizing loss came hours after the team learned four-time all-star first baseman Adrian Gonzalez had been dealt to the Los Angeles Dodgers, along with pitcher Josh Beckett, injured four-time all-star outfielder Carl Crawford and utility infielder Nick Punto.
The Red Sox received first baseman James Loney and four minor-league prospects in exchange.