Ryan Sweeney drove in two runs and six A's starters had at least two hits apiece in a 16-hit onslaught, as Oakland won its second straight game following a three-game losing streak.
Joey Devine (2-0) pitched two scoreless innings in relief to get the victory, and Houston Street earned his fifth save.
Oakland starter Greg Smith allowed four runs on six hits and one walk over five innings.
Guillen staked the A's to an early lead with his three-run homer in the first. Barton drove in the game winner with his RBI triple in the bottom of the seventh - putting the A's up 6-4. The insurance run paid off when the Royals scored on John Buck's RBI single in the top of the ninth.