KANSAS CITY, Mo. — Whit Merrifield drove in the go-ahead run in the seventh inning, Eric Hosmer hit a two-run homer and the Kansas City Royals beat the Boston Red Sox 4-2 on Monday night for their eighth win in nine games.

Jason Hammel (4-6) pitched seven sharp innings before turning it over to Mike Minor, who loaded the bases with two outs in the eighth. No. 9 hitter Christian Vazquez proceeded to send a slow bounder toward third base that Cheslor Cuthbert fielded cleanly and fired to first to end the threat.

Kelvin Herrera worked around Andrew Benintendi’s triple in the ninth for his 16th save.

Red Sox reliever Blaine Boyer (0-1), who wriggled out of a jam in the sixth, gave up Merrifield’s bouncing RBI single in the seventh. Boyer was lifted after Lorenzo Cain added an insurance run with a single, the second straight night Boston’s stingy bullpen has allowed a pair of runs.

Red Sox relievers had thrown 26 straight scoreless innings before the slump.

Hammel scattered seven hits without a walk, stranding seven along the way, and the only damage against him came in the fourth inning. That’s when he gave up a leadoff single to Hanley Ramirez, and hot-hitting Jackie Bradley Jr. sent a 1-0 pitch over the bullpen in right field for a two-run homer that tied the game.

It was the third straight start in which Hammel pitched into the seventh.

Boston right-hander Hector Velazquez was nearly as good as Hammel in his second career start, carefully navigating a bunch of baserunners during the first two innings. Hosmer finally dinged him in the third with an estimated 446-foot shot to center, a line drive that cleared the seats and landed in the fountains.

Velazquez turned it over to his faltering bullpen after giving up five hits in 5 1/3 innings.

Dustin Pedroia was out of the lineup after getting hit in the ribs by a pitch Sunday in Houston. An MRI came back negative, and manager John Farrell said Pedroia is day to day.