Pratto blasted a two-out, 3-2 changeup from Garrett Whitlock (2-2) an estimated 424 feet to center field for his second career homer and first at Kauffman Stadium.
''It was just like any other at-bat where I come up there with a plan and try to execute it,'' Pratto said. ''Throughout the at-bat he was making a lot of pitches to the edges so I felt like I was hanging in there and not chasing. It was a situation where I felt like I executed.''
Whitlock, who had retired all eight batters he faced before Pratto, was less measured in his assessment of the walk-off homer.
''He hit it out,'' Whitlock said. ''I'm pissed off, obviously not at you all, not anyone but myself and the guy made a good frickin' swing, but it was a terrible pitch by me.''
The Royals began and ended the game with homers for the second time in team history - the first was on July 3, 1973. MJ Melendez hit his second leadoff homer of the series, a 434-foot drive to right field for his 12th longball this season.
''It's extra special when they have a bunch of their buddies around,'' Royals manager Mike Matheny said. ''This is just a unique situation where you have so many guys that have come up together that are pulling for each other and helped each other get here.''
Kyle Isbel also homered for Kansas City.
Bobby Dalbec hit a two-run drive for Boston in the fourth inning and Alex Verdugo went deep in the sixth to tie the game at 4-4.
''We put together some good at-bats, especially at the end of the game,'' Red Sox manager Alex Cora said. ''It was a good effort, but we didn't end up finishing the game.''
Dylan Coleman (3-1) retired the Red Sox in order in the ninth.
Boston's J.D. Martinez doubled in the second inning and scored when Christian Arroyo reached on a fielding error by shortstop Bobby Witt Jr. Kansas City has made 27 errors in its last 32 games, the most by any team in that span.
Witt hit a two-run single in the third to put the Royals ahead 3-1.
Both starting pitchers had nearly identical numbers. Boston's Nathan Eovaldi and Kansas City's Daniel Lynch each worked six innings, and each allowed four runs on seven hits, including two homers, while walking none. Eovaldi struck out seven to Lynch's six.
Boston sends RHP Kutter Crawford (3-3, 3.86 ERA) to the mound on Sunday as it seeks a split of the four-game series. RHP Brad Keller (5-12, 4.61), who allowed a career-high eight runs against the White Sox on Tuesday, starts for the Royals.
More AP MLB: https://apnews.com/hub/mlb and https://twitter.com/AP-Sports
Copyright 2022 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.