BOSTON — Alex Gordon hit a tying home run off Craig Kimbrel in the ninth inning, Jorge Soler hit a three-run homer against Brian Johnson in the 13th and the Kansas City Royals rallied for a 7-6 win over the Boston Red Sox on Tuesday night.

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.

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 and Whit Merrifield singled off Johnson (1-1) ahead of Soler's homer over the Green Monster.

Mitch Moreland singled leading off the bottom half against 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.

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.

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.

TRAINER'S ROOM

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.

UP NEXT

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.