Minnesota broke a 6-6 tie with a three-run fifth. Max Kepler and Adrianza had RBI singles against Glenn Sparkman (0-3). Rosario tacked on his team-leading 23rd home run leading off the eighth.
The Twins gave starter Stephen Gonsalves an early lead on Adrianza's two-run single in the second, but the Royals knocked him out with a six-run outburst in the third. Gonsalves, one of Minnesota's top pitching prospects, got through the first two innings without much trouble, but the second time through the order was a different story.
After No. 9 hitter Cam Gallagher flew out to start the third, the next five batters reached base against Gonsalves. Alex Gordon's two-run double tied the score at 2-2, and two batters later Bonifacio singled home Gordon to end Gonsalves' night.
Perez greeted reliever Alan Busenitz with a three-run homer into the bullpens in left-center. His 24th home run of the season gave the Royals a 6-2 lead.
The Twins sent Royals starter Heath Fillmyer to a similar fate in the bottom of the inning, knocking him out as five of the first six batters reached base. Jake Cave hit an RBI double and scored on a wild pitch to tie the game at 6.
Royals: OF Brett Phillips is day-to-day with a shoulder contusion he suffered running into the wall in Cleveland on Tuesday.
Twins: Rosario returned to the lineup after missing six games with sore quadriceps, but 3B Miguel Sano remained sidelined with a lower left leg bruise suffered on Tuesday in Houston.
Royals: In the second game of the series Saturday evening, RHP Jorge Lopez (1-4, 2.24 ERA) makes his fifth start for the Royals since being acquired from Milwaukee in the Mike Moustakas deal. His last time out he held the Orioles to one run over seven innings while striking out eight in a 9-1 victory.
Twins: RHP Jose Berrios (11-10, 3.92), the Twins' lone 2018 All-Star, will try to turn it around against the Royals. In his last seven starts he's 1/3 with a 5.67 ERA.