Hosmer delivered an RBI single and scored on Butler's blast in the first inning, handing the Royals a quick 3-0 lead.
Hosmer went deep in the fifth with a two-run shot, which gave Kansas City a 5-2 advantage.
Chris Getz also drove in a run as the Royals took the rubber match of their season-opening series at Anaheim.
Jonathan Sanchez (1-0) pitched well in his Royals debut, yielding two runs on four hits over five frames, walking three and fanning four.
Jonathan Broxton picked up his first save after striking out the side in the ninth.
Ervin Santana (0-1) was roughed up for six runs (five earned) on seven hits in a 5 2/3-inning effort for the Angels.