Kansas City won for the 15th time in 17 games, rallying from a three-run deficit to defeat the Red Sox for the second straight night.
The Royals sent 11 men to the plate in the sixth inning against three Boston pitchers and scored their six runs in the frame on six hits.
Alcides Escobar drove in the first run of the inning with a single, David Lough added a sacrifice fly and Hosmer then delivered his two-run single that gave Kansas City a 7-6 lead.
The go-ahead run was charged to reliever Drake Britton (1-1).
Francisley Bueno (1-0), called up from Class AAA Omaha this week, picked up the second win of his career with 2 1/3 innings of one-hit relief. Greg Holland struck out two in the ninth for his 31st save.