Paulo Orlando's homer highlighted a three-run eighth that gave the Royals breathing room.
It had been a while since Rick Porcello hit the clubhouse so early.
At least he had Red Sox manager John Farrell to keep him company.
Porcello was tagged by the weak-hitting Kansas City Royals and lifted with nobody out in the sixth Tuesday night. Farrell was ejected for arguing about the strike zone the following inning, and Boston lost 8-4 in the opener of a three-game series.
"They got me today," Porcello said, "plain and simple."
Porcello (6-2) gave up five runs, four earned, on eight hits and two walks. The five-plus innings represented his shortest start since going two innings against the White Sox last July.
Travis Shaw hit a three-run homer to provide most of the Red Sox offense.
Oh, and the ejection of Farrell?
"I thought there were a couple of at-bats and in particular Mookie (Betts') case," he said. "I obviously had a disagreement with a couple of pitches."
Paulo Orlando hit a two-run homer and finished with four RBIs. Omar Infante and Alcides Escobar also drove in runs for Kansas City, which has struggled to find offense all season.
Yordano Ventura (4-2) allowed four runs and seven hits over 5 2/3 innings before exiting with a one-run lead, but Orlando's homer highlighted a three-run eighth that gave the Royals breathing room.
Orlando started his fourth straight game.
"You try to find a hot hitter and you kind of ride it out," manager Ned Yost said. "We just right now need the offense. The offense from the bottom of the order tonight was fantastic."
Boston actually struck first when Jackie Bradley Jr. extended his hitting streak to 22 games with an RBI double in the second, but Kansas City quickly answered in the third. Escobar drove in Orlando shortly before Eric Hosmer belted a two-out pitch over the center-field wall for a 2-1 lead.
Things unraveled for Porcello in the fourth when he gave up three runs on four consecutive one-out singles, matching the second-most runs he'd allowed in a start all season. And while Porcello got through that inning and the fifth, he failed to retire a batter before getting yanked in the sixth.
It was the first time in 16 starts Porcello did not last six innings.
"To me more than anything, it was the lack of a finishing pitch when he did get ahead in the count," Farrell said. "Much like a hitter, you're going to go through ebbs and flows, but I didn't think he was off that much tonight. ... When they bunch them together, that's what the issue was tonight."
Boston tried to bail out Porcello in the top of the sixth when Shaw swatted a three-run homer, giving the Red Sox a home run in 17 consecutive games. The franchise record is 19 set in July 1996.
The comeback was squelched by Kansas City's resolute bullpen.
Luke Hochevar got the final out of the sixth and worked a perfect seventh. Salvador Perez threw out Xander Bogaerts trying to steal second to wipe out the potential tying run in the eighth.
"He's got a tremendously strong arm," Yost said, "and he's as accurate as I've ever seen."
STATS AND STREAKS
Bogaerts not only has a season-best 11-game hitting streak, he also has an 11-game hitting streak against Kansas City. ... Porcello has lost four straight starts vs. the Royals. ... Betts had his streak of consecutive games with an RBI from the leadoff spot snapped at seven.
Red Sox: Former Cardinal RHP Joe Kelly (right shoulder impingement) came out of his rehab start at Triple-A Pawtucket in good shape and could start for Boston on Saturday against Cleveland. ... LHP Eduardo Rodriguez will be scratched from a planned rehab start Thursday for Pawtucket with more pain in his right knee. "This isn't something we feel we're back to ground zero," Farrell said.
Royals: 3B Mike Moustakas (broken left thumb) will begin a rehab assignment at Double-A Northwest Arkansas on Wednesday. He could rejoin the Royals against the White Sox this weekend in Chicago.
Boston's Steven Wright and the Royals' Ian Kennedy will start the opener of Wednesday's doubleheader, which will include the makeup of Monday night's rainout. David Price will start the nightcap for the Red Sox against Kansas City right-hander Edinson Volquez.