Cody Decker also hit a homer, his second of the spring, to open the sixth inning. Frank Schwindel smashed a two-run homer, his first, in the eighth.
Angels starter Matt Shoemaker worked five innings, allowing four runs on seven hits with no walks and five strikeouts. He hit a batter and threw 71 pitches.
Rookie Miguel Almonte started for the Royals, who turned five double plays, and allowed a run on three hits with two walks and two strikeouts in four innings.
The Angels' only run off Almonte came on a sacrifice fly to deep center off the bat of Rafael Ortega.