BOSTON — The Kansas City Royals keep finding different sources for timely hits during a red-hot August.

Raul Mondesi hit a bases-loaded triple and Eric Hosmer added a two-run single during an eight-run sixth inning, lifting the surging Royals to a 10-4 victory over the Boston Red Sox on Sunday night.

Salvador Perez hit his third solo homer in two games for Kansas City, which took two of three at Fenway Park and got its 17th win in 21 games.

“You can ride guys like (Kendrys) Morales when they get hot or (Hosmer) when they get hot. But if you’re going to have any kind of sustained winning streak, it’s got to be everybody,” Royals manager Ned Yost said. “It’s got to be a different guy every night.”

After nearly falling out of the playoff race, the defending World Series champs have cut their deficit to Cleveland in half and are 5 1/2 games back in the AL Central. They also cut 6 1/2 off their wild-card deficit.

David Ortiz hit his 534th career homer, a solo shot, for the Red Sox, tying Jimmie Foxx for 18th on the career list. Boston has lost four of five.

Matt Strahm (2-0) pitched 2 2/3 innings of hitless relief for the win.

Eduardo Rodriguez (2-6) gave up five runs in 5 1/3 innings before the bullpen allowed five more in the sixth.

“As hot as they are and the momentum they’ve been able to create, it was a tough, tough sixth inning, obviously, when you put eight runs up on the board,” Boston manager John Farrell said.

The Royals chased Rodriguez and regained the lead in the sixth after the Red Sox moved ahead in the fifth.

Alcides Escobar had an RBI single before Mondesi rocked his triple to the outfield-wall triangle in center off Matt Barnes. Cheslor Cuthbert had a run-scoring fielder’s choice grounder before Lorenzo Cain added an RBI single.

“I was just looking fastball. I know he throws hard,” Mondesi said. “I was looking fastball and I got it. Put a good swing on it.”

Robbie Ross Jr. relieved and gave up Hosmer’s two-run single off the Green Monster before getting the final two outs.

“It unfortunately didn’t go the way I hoped,” said Barnes, who was charged with five runs and didn’t get an out.

Boston capitalized on center fielder Paulo Orlando’s error to score three times off starter Yordano Ventura in the fifth. Chris Young singled and Orlando dropped Sandy Leon’s fly at the track, putting runners on second and third before a walk.

Brock Holt drove in the first run with a groundout before Xander Bogaerts’ two-run single.

Ventura gave up four runs — three earned — in 4 1/3 innings.

Ortiz’s 31st homer went into the bleachers behind Boston’s bullpen in the fourth.

Perez homered off a billboard above the Green Monster.

TRAINER’S ROOM

Royals: C Perez took a foul ball in the chin area after it bounced in the dirt and up under his mask, but stayed in the game.

Red Sox: RH reliever Koji Uehara (strained chest muscle) is still expected to throw a bullpen session Monday.

FAMILY MATTER

Red Sox 2B Dustin Pedroia left the team after a death in the family. He’s expected back after Monday’s game starts following the services, so he won’t be on the bereavement list that requires three games missed.

GOING HOME

Despite the late night, Yost was glad to be heading back to Kansas City.

“I’m glad to go home,” he said. “I hate we get in at 4 o’clock in the morning. We didn’t get here until 4:30. And leaving here, not getting home until 4. But we’ll be fine.”

UP NEXT

Royals: RHP Dillon Gee (5-7, 4.55 ERA) is set to start Monday against New York RHP Michael Pineda (6-10, 5.02) when they open a three-game series at home against the Yankees.

Red Sox: RHP Rick Porcello (17-3, 3.23) looks to become the first Red Sox pitcher in 70 years to open a season 13-0 in Fenway Park on Monday against the Rays. RHP Matt Andriese (6-5, 3.71) is set to start for Tampa Bay.