Lorenzo Cain belted a two-run homer in the bottom of the eighth inning as the Royals edged the White Sox, 7-5, on Wednesday night at Kauffman Stadium.

Eric Hosmer also hit a three-run homer for the Royals, whose bullpen tossed four shutout innings.

Danny Duffy allowed all five runs in five innings of work. He allowed eight hits including a two run homer to Tyler Flowers.

Wade Davis got the win and Greg Holland the save.