BOSTON (AP) Salvador Perez hit a three-run homer, Yordano Ventura pitched six effective innings and the AL Central-leading Kansas City Royals beat the Red Sox 6-3 Saturday night, ending Boston's four-game winning streak.

Kendrys Morales added a two-run double and Alex Rios had three singles and an RBI for Kansas City. Following losses the first two nights, the Royals can earn a split of the four-game series Sunday.

Mookie Betts hit a solo homer and David Ortiz had two singles and three walks for the Red Sox. Boston had won four of the five meetings this season, and 10 of 12 since the start of 2014.

More from FoxSports

Ventura (8-7) gave up one run and six hits, striking out six. He improved to 4-0 in his last six starts. Greg Holland got Travis Shaw to pop out with the bases loaded for final out, earning his 28th save.

Leading 2-0 in the sixth, the Royals chased Matt Barnes (3-4) when Perez homered.

Morales lined his double off the Green Monster in the first.

Ventura stranded five runners in the first four innings before Boston scored on Shaw's groundout in the sixth. Betts homered over the Monster off Ryan Madson.

Making just his second major league start, Barnes gave up five runs and eight hits in 5 1-3 innings.

TRAINER'S ROOM

Royals: OF Alex Gordon is set to start a rehab assignment with Triple-A Omaha Sunday. He's been on the DL since early July with a strained groin. . C Perez took a foul ball off the mask and was shaken up, but stayed in the game.

Red Sox: Utility player Brock Holt was in the original lineup, but was scratched with a strained left oblique after batting practice. ... Ortiz fouled a ball off his right foot in his first at-bat, and limped a bit. ... Interim manager Torey Lovullo said RHP Rick Porcello (soreness, right triceps) could return on the upcoming road trip after he said he ''felt great'' at the end of a rehab start for Triple-A Pawtucket Friday.

UP NEXT

Royals: RHP Edinson Volquez (11-7) is scheduled to make his team-leading 26th start in the series finale Sunday. He's held hitters to a .178 average with runners in scoring position, second best in the AL.

Red Sox: LHP Eduardo Rodriguez (7-5) is looking to follow his solid outing earlier this week. The rookie 22-year-old pitched eight innings of one-run ball, earning the win against Cleveland on Tuesday.