Perez hit his eighth homer, sending a pitch from Keone Kela (4-2) into the Royals' bullpen.
Wade Davis (3-1) picked up the victory, working around Prince Fielder's double in the eighth. Greg Holland pitched a perfect ninth for his ninth save in 10 opportunities.
Jeremy Guthrie limited the Rangers to one hit the first six innings, but was removed with one out in the seventh after giving up back-to-back singles to Mitch Moreland and Joey Gallo.
Guthrie left with a 3-0 lead, and reliever Kelvin Herrera could not hold it. Elvis Andrus singled to load the bases, Leonys Martin hit a two-run single and Robinson Chirinos' RBI groundout tied it.
Rangers starter Colby Lewis departed after seven innings and 101 pitches, giving up three runs and eight hits.
Kendrys Morales hit an RBI double in the fifth that made it 3-0.
Rangers: RHP Ross Ohlendorf (strained right groin) was putn the disabled list. He joins 13 other Rangers on the DL. ... RHP Neftali Feliz (abscess procedure) threw one inning on a rehab assignment Saturday for Triple-A Round Rock, allowing one unearned run on one hit against Oklahoma City. He walked one and struck out one, throwing 24 pitches. ... LHP Matt Harrison (spinal fusion) will make his second rehab start Monday for Round Rock.
Royals: LHP Danny Duffy (biceps tendinitis) will make his first rehab start Tuesday for Triple-A Omaha.
Rangers: After an off-day Monday, RHP Nick Martinez will start the series opener Tuesday at Oakland.
Royals: RF Alex Rios is 13 for 27 with four doubles and a home run against RHP Phil Hughes, the Twins' starter Monday at Minnesota.