Jonathan Heasley picked up his first major league win. Heasley (1-1) allowed four runs and six hits in 5 1/3 innings, with three of the runs coming in the sixth.
John Gant (5-11) gave up six runs and eight hits in four innings.
Merrifield led off the first with a soft single, Nicky Lopez bunted for a hit and Perez was plunked, loading the bases. A wild pitch scored a run and Carlos Santana had an RBI grounder.
The Royals added two more runs in the third and Andrew Benintendi blooped a two-run double in the fourth for a 6-1 lead.
Dozier homered in a two-run fifth that ended when Perez struck out with the bases loaded.
Ryan Jeffers led off the Twins sixth with a homer and Miguel Sano added a two-run single.
Royals C Sebastian Rivero was recalled from Triple-A Omaha. With Perez nursing a sore ankle, the Royals needed someone to back up Cam Gallagher. To make room on the roster, RHP Tyler Zuber was option to Omaha.