Kansas City's offense wasn't fazed by the switch.
Perez homered over the Green Monster in the second and Moustakas made it 4-0 in the fourth. He hit his 30th homer in his 92nd game, the fastest to reach the mark in team history, and he is six homers shy of the Kansas City season record set by Steve Balboni in 1985.
"It was a big win for us against a great club over there," Moustakas said. "It's always nice to hit homers, but when they help you go ahead or add some runs against a great team, it definitely makes it a little better."
Porcello (4-14), who had been scheduled to pitch Saturday, leads the major leagues in losses. He allowed four runs and six hits in seven innings.
"The one to Moustakas is really the one that's going to make it hard to sleep tonight," Porcello said. "He was fouling off some pitches off - just trying to drive a fastball in right there and if I miss for a ball so be it. I didn't have a problem putting him on and ran right back into his barrel."
Price started the season on the DL and didn't make his first start until May 29. The 31-year-old left-hander, winner of the 2012 AL Cy Young Award, is 5-3 with a 3.82 ERA.
"I do not know if he'll miss the season," Red Sox President of Baseball Operations Dave Dombroski. "I'm not anticipating that at this time."
Porcello said that he "knew pretty early" after his July 23 start at the Los Angeles Angels that it was possible he would be moved up.
"It was early enough for me to prepare and be fine," he said.
Boston has lost five of six and nine of 14, dropping out of the AL East lead for the first time since June 29 and falling a half-game behind the New York Yankees.
Jason Vargas (13-4) gave up one run and five hits in six innings. Vargas, who had been winless in three starts since June 30, is one shy of his career high for wins, set in 2012 with Seattle.
Kansas City, which has rebounded from a 7-16 start, is 15-8 in July and on its longest winning streak since nine consecutive victories from last Aug. 14-23. The Royals have outscored opponents 67-27 during the streak and outhomered them 20-2.
Three days after his big league debut, Devers went 1 for 2 in his first home game for the Red Sox. He doubled down the right-field line in the fifth and scored on Mookie Betts' single, and at 20 years, 277 days became the youngest Boston player with a hit at Fenway Park since Mike Garman in 1969.
Ten of Perez's 21 homers have put the Royals ahead.
The Royals dealt RHP Luke Farrell, the son of the Red Sox manager, to the Los Angeles Dodgers for cash considerations. Farrell made his major league debut on July 1, allowing five runs over 2 2/3 innings against the Twins.
Royals: Perez returned to the lineup after leaving Tuesday's game and sitting out Wednesday with soreness on his right side. ... The Royals recalled OF Terrance Gore from Triple-A Omaha. Gore has split time between Double- and Triple-A this season, hitting .231 with 17 steals. ... OFs Paulo Orlando and Cheslor Cuthbert will remain on rehab assignment after both suffering setbacks.
Red Sox: LHP Robby Scott was recalled from Triple-A Pawtucket to take Price's roster spot.
Royals: RHP Trevor Cahill (4-3, 3.69 for San Diego) is to make his first start for the Royal on Saturday following his acquisition from the Padres. Cahill is 0-2 with a 7.79 ERA at Fenway Park.
Red Sox: LHP Eduardo Rodriguez (4-3, 3.89) is 1-0 with a 2.38 ERA in four home starts this season but is 0-2 in three starts since beating Seattle on May 26.