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 A's will start a Jesse on the mound in two different venues Saturday, as right-hander Jesse Chavez takes on the Giants at HoHoKam Stadium and right-hander Jesse Hahn makes the start against the Cubs in Las Vegas. Both are looking to secure a spot in the A's rotation, and both are making their second start and third appearance of the spring. Chavez has allowed two earned runs on six hits in his four innings of work so far, and Hahn has given up three runs on six hits, also in four innings.