Lorenzo Cain doubled in the first, and Hosmer and Kendrys Morales followed with singles before Perez jumped on a changeup from A's right-hander Chris Bassitt and deposited it into the left-field bullpen.
Bassitt, who is fighting for one of the remaining spots in the A's rotation, didn't help his cause much. He gave up seven hits and five runs, all earned, while striking out two through three innings.
"His first two hitters it looked like he had everything working, but that third out was tough to come by," A's bench coach and acting manager Mike Aldrete said of Bassitt. "It was two outs and nobody on, and they strung some hits together."
Royals starter Edinson Volquez wasn't sharp, either. Volquez gave up five hits and two runs in 2 1/3 innings before reaching his pitch count of 50-55. He threw 52 pitches, 34 for strikes.
Volquez's signature pitch -- his changeup -- wasn't effective, he said.
"I threw some good ones and some bad ones," Volquez said. "[Spring Training] is a process. I just need to find my rhythm.
"Sal just told me I was rushing it. He told me to 'stay back.' I need to do that."
Right-hander Chris Young, recently signed as a bullpen addition, made his Royals debut with one scoreless inning. He gave up two hits, but then got out of the inning with two strikeouts and a pop out.
"I thought Chris had a good first outing," Royals manager Ned Yost said. "Really, we had good pitching from everyone. Just a good day."
Eric Sogard and Sam Fuld also drove in runs for the A's.
Up next: The Royals will send out left-hander Jason Vargas for his second spring start against an Angels split-squad team at 3:05 CT., at Surprise Stadium. The game can be heard on an exclusive webcast on Royals.com