MLB: Kansas City Royals at Boston Red Sox

The Royals' Ryan O'Hearn is greeted in the dugout after hitting a home run during the fifth inning against the Boston Red Sox at Fenway Park on Tuesday night. Kansas City prevailed, 6-2.

Jorge Soler homered twice to eclipse 30 for the season as the Kansas City Royals snapped a seven-game losing streak with a 6-2 win over the host Boston Red Sox on Tuesday night.

Ryan O'Hearn also went yard as the Royals won for just the second time in their last 12. Kansas City also ended a franchise-long run of eight straight losses to Boston.

J.D. Martinez and Christian Vazquez had two hits apiece for the Red Sox, who fell for the ninth time in their past 10 contests. Boston had a record streak of 18 straight games at Fenway Park with a home run come to an end.

Soler's first blast, a two-run shot, put the Royals ahead for good, 2-1, with two outs in the fourth inning. O'Hearn then added a run with his homer on the 10th pitch he saw to lead off the fifth, before Soler highlighted a three-run sixth with yet another two-run jack for a 6-1 advantage.

The homers were the 30th and 31st of the year for the 27-year-old, who entered the campaign with 38 in parts of five major league seasons.

All the damage came against Red Sox right-hander Andrew Cashner, who took the loss for the fourth time in five starts with Boston. Cashner (10-7) gave up six runs on seven hits and two walks in 5 1/3 innings, striking out four.

Royals righty Jakob Junis, meanwhile, earned the win with six quality innings. Junis (7-10) surrendered one run on seven hits and a walk and struck out four.

Andrew Benintendi got the Red Sox on the board first with an RBI single in the third inning. Boston had men on the corners with two outs in the frame before Bubba Starling made a leaping grab at the wall in center on a Vazquez fly to end the threat.

Royals pitching retired 10 straight Red Sox from the fourth until Martinez led off the eighth with a ground-rule double. He scored on a Vazquez double for the final margin.