Facing Kansas City right-hander James Shields, the A's were held hitless through the first three innings, before Coco Crisp got things going with a leadoff single in the fourth. One out later, Jed Lowrie collected a hit of his own, and Yoenis Cespedes' ensuing run-scoring double put Oakland on the board.
Brandon Moss followed with a two-RBI base hit that tied the game, and the A's took control in the fifth via Eric Sogard's run-scoring double.
Shields went 4 2/3 innings for Kansas City, giving up four runs on six hits. He walked none and struck out six.
Oakland's offensive effort overshadowed an early lead posted by the Royals, who got to starter Tommy Milone right away, with Alex Gordon leading off the game with a monster shot to right field.
The left-handed Milone proceeded to keep the Royals off the board in the second and third innings, before allowing two more runs in the fourth, when first baseman Max Ramirez and second baseman Johnny Giavotella notched RBI hits.
Milone was done after 3 2/3 innings in his third Cactus League start. He was tagged for three runs and six hits, while striking out two.
Andy Parrino delivered some insurance in the eighth with a two-run single.
Up next for Royals: Right-hander Ervin Santana will start against the Mariners, at 3:05 p.m. CT on Wednesday at Surprise Stadium. It was a Seattle split squad that ended the Royals' 11-game winning streak with a 12-2 victory last Thursday at Surprise. Also in the Royals' pitching plans are Guillermo Moscoso, Aaron Crow, Nate Adcock, Dan Wheeler and Blaine Boyer. The Mariners' probable starter is Hisashi Iwakuma.
Jane Lee is a reporter for MLB.com. Read her blog, Major Lee-ague, and follow her on Twitter @JaneMLB. This story was not subject to the approval of Major League Baseball or its clubs.