The homers accounted for all but one of the Kansas City runs and the Royals jumped to a 6-0 lead through three innings. After losing four in a row, the Royals have captured three of their last five.
Billy Butler got Kansas City started with a three-run blast in the first, Mike Moustakas contributed a two-run shot in the third and Hosmer then produced a solo homer in the fifth and a two-run affair in the seventh.
The only Kansas City run that did not come on a homer scored on a single by Alex Gordon in the second.
James Shields (3-6) was the beneficiary of the assault, giving up three runs on eight hits in 6 1/3 to get the win.
P.J. Walters (2-4) gave up the first two Kansas City home runs and lasted only three innings.
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need