The Royals produced season highs in both runs and hits.
Zack Grinke (4-1) allowed three runs on five hits and struck out eight over seven innings to get the win.
Kansas City took control with a four-run second inning that featured a three-run homer from DeJesus. Gordon had a two-run blast in a three-run fourth that put the Royals up 9-1.
The Royals got to Jered Weaver (2-5) for eight runs on 10 hits in 3 1/3. The Angels had won their four previous games.