The Royals had 10 hits, the fourth time in five games they had double-digit hits, and they scored 52 runs on the nine-game West Coast swing, including 18 home runs.
They became relevant again in the AL Central race as well. Trailing by 6 1/2 games a week ago, they have gained three games on the division leaders and bunched up the race.
Virtually every Royal bat that had been a part of an anemic 7-16 start to the season -- the Royals averaged 2.7 runs per game in April -- woke up.
Moustakas is hitting .360 in his last 13 games, with nine extra-base hits and 16 RBIs. He has 31 RBIs over the last 29 games.
Perez was 3-for-5 Sunday to extend his hitting streak to 10 games. In that span, he has an extra-base hit in eight games, including five doubles and three home runs.
Lorenzo Cain had a double and hit .416 on the trip with 13 runs scored, six home runs and 11 RBIs.
Eric Hosmer's sacrifice fly in the win was the 500th RBI in his career. He hit .323 on the trip and is hitting .350 since May 1.
The Angels jumped on Royals starter Jason Vargas (10-3), who came in with a 2.10 ERA, for two runs in the first, but the one-time Angel settled down thereafter. He worked out of a bases-loaded, no-out jam in the sixth, allowing just a scoring fly ball. He allowed eight hits and walked two in six innings.
Angels center fielder Cameron Maybin singled to start the bottom of the first, extending his streak of reaching base to 23 consecutive games, and scored on Kole Calhoun's double off the top of a low fence in right field. Calhoun scored on an Andrelton Simmons single to make it 2-0.
The Royals woke up in the third, aided by sudden wildness by Angels starter JC Ramirez (6-5). Rookie second baseman Ramon Torres doubled and Ramirez then walked Cain and Hosmer on full-count pitches to load the bases.
Moustakas sent all three home with a booming double to the right field gap.
Alex Gordon singled and Torres was hit by a pitch to end Ramirez's day in the fourth. Reliever Kenyan Middleton fared no better, allowing a single to Jorge Bonifacio to load the bases, a scoring fly ball to Hosmer, and Perez's shot over the center field fence to make it 7-2.
The Angels had 12 well-spaced hits and stranded nine.
NOTES: The Angels begin an eight-game road trip Monday, three games at New York and Boston before returning to Southern California for two road interleague games against the Dodgers. ... The Royals return home for a brief six-game road trip to Boston and Toronto. ... Royals manager Ned Yost gave rookie second baseman Whit Merrifield the day off and started rookie Ramon Torres, his fourth appearance since being recalled. He was 2-for-4 and reached base three times. ... Angels CF Mike Trout will make the Angels road trip that starts in New York, near his New Jersey hometown. He hopes to get approval to start swinging a bat this week. He underwent surgery to repair a torn ligament in his thumb in late May. ... The Angels have a decision to make on the status of RHP Doug Fister. He was signed to a minor league deal with hopes of reviving career that paused when he didn't get an offer when he became a free agent after last season. He has allowed seven runs in 15 2/3 innings in three starts with Triple-A Salt Lake City. He has a June 21 opt-out date on his minor league deal. The Angels could grant his release or negotiate an extension of his minor league deal. Fister has a 77-76 record in eight seasons with four teams.