Mookie Betts and company jumped all over Jason Hammel.
It was more than enough with Chris Sale on the mound.
Sale struck out 12 in six innings, Betts, J.D. Martinez and Xander Bogaerts homered, and the Boston Red Sox beat the Kansas City Royals 10-5 on Friday night at Kauffman Stadium.
Betts' 100th career homer sparked the AL East leaders to four runs in each of the first two innings.
"If you get four runs before you take the mound it's nice," Sale said. "Just go out there and you're able to pitch and not worry about being too cute or too fine, just throwing strikes."
Sale also made a nice running catch of Mike Moustakas' foul popup in front of the Red Sox dugout in the sixth, calling off catcher Sandy Leon and third baseman Eduardo Nunez.
"As pitchers, we don't get the best rep for being athletes," Sale said. "It was just fun, run by, scream a little bit and get the guys going."
Sale's 16-inning scoreless streak was snapped by Alcides Escobar's two-out RBI single in the second, but that was it for the skidding Royals against the ace left-hander. Sale (9-4) has allowed one run and 10 hits over 20 innings in his past three starts.
"We take care of him," Red Sox manager Alex Cora said. "Whenever we can save right now is going to benefit him and us in the future. His breaking ball was great. The fastball whenever he wanted to was up to 99 (mph). He was outstanding again."
Boston stretched its win streak to four with its ninth victory in 11 games overall. It leads the majors with 60 victories and a .674 winning percentage.
Betts drove Hammel's third pitch over the center-field fence for his fourth leadoff drive this season.
Brock Holt added a two-run single as Boston batted around in a four-run first.
Martinez and Bogaerts each hit a two-run shot in the second. It was Martinez's major league-leading 27th homer, and Bogaerts improved to 6 for 11 with two homers and seven RBIs versus Hammel (2-11).
"It just wasn't his night," Royals manager Ned Yost said. "I mean he didn't have anything going for him."
Hammel was pulled after the second. The veteran right-hander has surrendered 23 runs, 21 earned, and 28 hits in 12 innings in his past three starts. He leads the AL in losses, and his ERA is up to 6.16.
"Probably throwing more angry balls right now than actual pitches so kind of become a thrower instead of a pitcher due to just frustration," Hammel said. "It's a tough lineup and if you miss they make you pay which you saw today."
Moustakas hit a two-run homer in the eighth for Kansas City, which has dropped seven straight and 19 of 22. Burch Smith pitched four scoreless innings in relief of Hammel.
The Royals are 37 games below .500 for the first time since finishing the 2006 season with a 62-100 record. Since June 1, they have been outscored 165-72 while losing 26 of 31.
Red Sox right-hander Tyler Thornburg pitched for the first time since October 2, 2016, with the Brewers. He missed last season after shoulder surgery. He allowed one run in the seventh.
Royals slugger Lucas Duda tripled in the seventh inning. It was his first three-base hit since July 17, 2011.
The Royals claimed left-hander Enny Romero off waivers from the Pirates. Rookie right-hander Trevor Oaks was optioned to Triple-A Omaha. The Royals also transferred right-hander Blaine Boyer (lower back strain) from the 10-day disabled list to the 60-day DL.
Royals prospect Seuly Matias was named to the All-Star Futures Game on July 15 in Washington. The 19-year-old outfielder has a minor league-leading 24 home runs with Class A Lexington. The Red Sox representative is right-hander Bryan Mata, who at 19 is the youngest pitcher in the Class A Carolina League, where he is 5-2 with a 3.14 ERA.
Red Sox: INF Dustin Pedroia (left knee inflammation) returned to Boston to be evaluated by the medical staff. "For them to see firsthand how he was reacting to certain drills, certain movements, he felt that it was productive," Cora said. ... LHP Drew Pomeranz (biceps tendinitis) will make a rehab start Saturday with Triple-A Pawtucket. ... RHP Stephen Wright (left knee inflammation) likely won't be activated before the All-Star break. ... 1B Mitch Moreland (back spasms) was not in the lineup again. He has not played since one at-bat Tuesday, but Cora said he likely would start Saturday.
Red Sox: LHP David Price starts Saturday for the first time since being removed after allowing eight runs in 3 1/3 innings Sunday against the Yankees.
Royals: RHP Brad Keller gets the ball for Kansas City. He pitched a six-hitter at Seattle in his previous start, but lost 1-0.