It was the fourth three-homer game for the 25-year-old Betts, who snapped a tie with Hall of Famer Ted Williams for most three-homer games in franchise history. Betts also became the first player in major league history with four three-homer games before turning 26, according to STATS.
AL East-leading Boston won for the third time in four games after losing 7-6 in 13 innings on Tuesday night.
Cheslor Cuthbert homered for Kansas City, and Drew Butera had a two-run double. The Royals were trying for consecutive wins for just the second time this season.
Danny Duffy (0-4) was tagged for five runs and 10 hits in 6 2/3 innings.
Boston left-hander Drew Pomeranz (1-1) worked six innings, giving up all three runs of his runs in the first two frames. Craig Kimbrel struck out the side in the ninth for his eighth save and 299th of his career a day after his first blown opportunity this season.
Unlike most of the early season games in Fenway Park, there was a summer-like feel with a game-time temperature of 86 degrees under bright-blue skies.
Betts led off the fourth with a drive to center for his ninth homer of the season. Hanley Ramirez walked with one out and Martinez followed with a drive to center, tying it at 3.
Betts connected again in the fifth, sending a drive just inside the left-field foul pole into the Green Monster seats. His third homer of the game also came against Duffy, driving a 1-2 pitch over the wall in center in the seventh.
Kansas City closed to 5-4 on Cuthbert’s homer in the eighth, but the Red Sox closed it out from there.
The umpiring crew had four calls overturned — including two by first-base umpire Fieldin Culbreth.
Royals: 3B Mike Moustakas returned to the starting lineup after just pinch-hitting on Tuesday. He was hit on the right forearm by a pitch in the series opener.
Red Sox: Betts started for the first time since leaving Saturday’s game with a tight right hamstring. … LHP Eduardo Rodriguez was placed on the family medical leave list and RHP Marcus Walden was recalled from Triple-A Pawtucket. Manager Alex Cora doesn’t know if the lefty will miss his turn in the rotation.
The Royals scored a strange run in the first.
With Jorge Soler on second and Whit Merrifield on third and one out, Salvador Perez hit a fly ball near the triangle in center.
Merrifield waved Soler back as he raced home. Soler was doubled up.
Perez was credited with a sacrifice fly because Merrifield crossed before the double play was completed.
Boston right-hander Joe Kelly returned after serving a six-game suspension for his part in a brawl with the Yankees last month. He pitched one scoreless inning.
Royals: LHP Eric Skoglund (1-2, 6.23 ERA) starts Thursday afternoon at home against Detroit. He allowed one run in a career-high seven innings in his previous start.
Red Sox: LHP David Price (2-3, 3.78 ERA) starts Thursday night at Texas in the opener of a 10-game trip, tying the club’s longest this season. He is 4-5 with a 5.11 ERA in 14 career starts against the Rangers.