KANSAS CITY, Mo. — If the Boston Red Sox keep getting this kind of pitching and hitting, their first 100-win season in more than seven decades seems a lock.
Rick Porcello matched his victory total from last year, pitching seven effective innings, as Andrew Benintendi had four hits and scored twice and the Red Sox beat the Kansas City Royals 7-4 on Sunday.
The Red Sox hit .385, 45 for 111, and had 68 base runners in sweeping the three-game series. Boston has won six straight and 13 of 16 and own the best record in the majors at 62-29.
"One through nine, they're all great hitters," Royals pitcher Heath Fillmyer (0-1) said after his first big-league start. "That's probably why they're in the position they are this year.
The Red Sox haven't won 100 games since 1946.
Porcello (11-3), who was 11-17 in 2017, allowed three runs on nine hits before leaving after 111 pitches. He struck out nine, matching his season high, and walked one. Craig Kimbrel got the final two outs for his 27th save in 29 chances.
Benintendi extended his on-base streak to 10 straight — six hits and four walks — before striking out in the eighth.
"I thought I was patient up there," Benintendi said. "I was trying to get pitches I could handle and was able to do that."
Drew Butera singled and Whit Merrifield doubled to lead off the Kansas City seventh, but Porcello stranded them by striking out Jorge Bonifacio and Mike Moustakas and retiring Lucas Duda on a fly ball.
"I went out there with the thought of taking him out," Red Sox manager Alex Cora said after Merrifield's hit. "I think with the lead and the conviction he told me, 'I got it,' we went hitter by hitter and he got them."
Porcello persuaded Cora to let him get out of the jam.
"I just tried to make my best case for staying in," Porcello said. "I felt like I was throwing the ball well. They got runners at second and third with nobody out and I felt like I could get out of it and limit the damage. I felt like it was my mess to clean up. Guys in the bullpen have been getting a lot of work lately and that was my job. Our offense did a great job of putting runs up and that should've been a shutdown inning. I wanted it and he gave it to me."
Eduardo Nunez drove in two Boston runs with singles in the fourth and seventh. Mitch Moreland walked with the base loaded in the fifth and singled in a run in the seventh. Xavier Bogaerts also contributed an RBI-double in a three-run seventh.
Merrifield singled in a run in the ninth for his first five-hit game. Bonifacio drove in two KC runs with a third-inning double.
"Anytime you can get five hits, that's a good day," Merrifield said. "But a tough day for us as a team."
Fillmyer allowed four runs, one unearned, on eight hits and three walks. He was filling in for Jakob Junis, who went on the disabled list with back tightness.
"I just try to minimize the mistakes. I think I learned a lot from it," Fillmyer said. "Hopefully, the next start I can put together a few things and give them a little bit more."
The Royals, who turned five double plays, lost their ninth straight to match their longest of skid this season and are 4-27 in their last 31 games. They are 38 games below .500 for the first time since ending the 2006 season 62-100.
Red Sox: RHPs Ryan Brasier and William Cuevas were promoted from Triple-A Pawtucket. Brasier last pitched in the majors in 2013 with the Angels and spent last year in Japan. Cuevas was 5-5 with a 3.65 ERA in 15 starts with Pawtucket.
Red Sox: DH J.D. Martinez was held out of the lineup after fouling pitches off his right foot and left calf on Saturday. "He's a little banged up," Red Sox manager Alex Cora said. "It made sense to stay away from him. We'll give him one day and he'll be back in the starting lineup tomorrow."
C Christian Vazquez (broken right pinkie) went on the disabled list and will see a hand specialist Monday in Boston. LHP Brian Johnson (left hip inflammation) was placed on the 10-day DL.
Red Sox: LHP Eduardo Rodriguez (10-3, 3.84) will start the series opener Monday against the Rangers at Fenway Park.
Royals: LHP Danny Duffy (4-8, 5.19 ERA) will start Monday in Minnesota as the club opens a six-game trip.