BOSTON — The Kansas City Royals just wouldn't stop rallying against the Red Sox.
Alex Gordon hit a tying home run off Craig Kimbrel in the ninth inning, and Jorge Soler slugged a three-run homer in the 13th and the Royals beat Boston 7-6 on Tuesday night.
"They kept battling. They kept fighting and kept trying to put together good at-bats," manager Ned Yost said of his club. "Gordon's home run was big there to keep us in the ballgame and just keep plugging away."
Boston led 3-2 before Gordon's one-out drive off Kimbrel, who was trying for his 299th save but instead blew an opportunity for the first time in eight tries this season.
After falling behind in the count 2-1, Kimbrel said he made a very costly mistake to Gordon.
"I wasn't trying to throw it right down the middle, but I was trying to throw an aggressive pitch," Kimbrel said. "It was an all-around good game. I just made a bad pitch and he hit it out of the ballpark."
Jon Jay had four singles and a sacrifice fly in the 12th that put Kansas City up 4-3. But Eduardo Nunez homered against Kelvin Herrera (1-0) in the bottom half.
Gordon added a single off Brian Johnson (1-1) with one out in the 13th, Whit Merrifield followed with another single and Soler drove in both with a shot over the Green Monster.
"We needed some cushion," Yost said. "We just couldn't hold a one-run lead, so the three-run, we finally did it."
Boston got two back in the bottom of the 13th before Nunez, whose homer to left rallied Boston in the 12th, hit one to the wall in center, where Abraham Almonte ended the threat and the wild night at Fenway.
Kansas City, which stumbled through April with seven wins, won in extra innings for the first time this season. The Royals have also won three of four since losing five straight.
"Just a good battle, a good team win," said Kevin McCarthy, who pitched three scoreless innings of relief for the Royals. "Crazy game."
Mitch Moreland, who homered for Boston in the sixth, led off the bottom of the 13th with a single off of Burch Smith, who hit Xander Bogaerts with a pitch. Rafael Devers hit into a forceout, Brian Flynn relieved and Jackie Bradley Jr. had a run-scoring groundout.
Christian Vazquez singled in a run, but Flynn got the first save of his five-year big league career when Nunez flied out to the center-field wall.
Brad Keller threw a run-scoring wild pitch in the seventh.
Alcides Escobar hit a sacrifice fly in the fourth, and the Royals took a 2-0 lead in the sixth when Lucas Duda got caught in a rundown while trying to steal second and Jay, who began the play on second, was able to come home.
Boston's Chris Sale struck out six while allowing two runs — one earned — and five hits in seven innings. He was in position to win consecutive starts for the first time this season.
Jakob Junis pitched five scoreless innings for Kansas City before Boston tied the score in the sixth on Moreland's homer and Bradley's RBI single.
"Junis gave us a heck of a start," Yost said.
GORDON GOES DEEP
Gordon was 0 for 3 entering the ninth, then hit his first homer of the season. It was the third time in his career he had a tying homer in the ninth.
Yost said he was confident Gordon's power would show soon.
"I don't need to see Alex hit a home run for me to think that it's still in there," he said.
Royals: DH Mike Moustakas was out of the starting lineup after getting hit by a pitch on his right forearm in the first inning Monday. He came off the bench in the 10th and grounded out while pinch hitting for Cheslor Cuthbert.
Red Sox: RF Mookie Betts (tight right hamstring) was out of the lineup a third straight game because of a tight right hamstring that forced him out Saturday. Betts took over in right field in the ninth.
Royals: LHP Danny Duffy (0-3, 5.40 ERA) makes his team-high seventh start, still searching for his first win. Duffy is 0-4 in six starts against Boston, the only AL team he has yet to beat.
Red Sox: LHP Drew Pomeranz (0-1, 7.27) gets his third start of the season after missing the first 18 games with a forearm injury.