"We just kept battling and battling," Yost said. "That's always been a hallmark of our team, no matter how difficult the times get. That's why I'm so proud of watching these guys."
Alex Gordon and Whit Merrifield delivered one-out singles, and Soler jumped on a 1-0 curveball from Brian Johnson and lifted it just over the Green Monster.
"I'm just happy the way we were able to win," Soler said through interpreter Pedro Grifol. "I was looking fastball, but I saw the breaking ball pop out of his hand and I put a good swing on it. I didn't think I hit it that well, but when I saw the outfielder turn, I knew it had a chance."
The excitement was far from over, though. Right-hander Burch Smith was one of two final relievers Yost had available in the bullpen for the 13th, and Smith immediately gave up a single and then hit a batter. After a fielder's choice, Yost opted for left-hander Brian Flynn, who allowed the inherited runners to score before securing the final two outs for his first career save.
"I was trying to get Burch through the whole inning," Yost said. "But I'm trying to win the game, too. So I went with the favorable matchup with Flynn."
The final out came when Eduardo Nunez, who had homered off Royals closer Kelvin Herrera in the 12th to tie it after Jon Jay's go-ahead sacrifice fly in the top of the frame, flied out to the center-field wall.
"I was ready to punch the guy out for my first save," Flynn said, smiling. "Instead I'm standing there holding my breath."
Royals reliever Kevin McCarthy pitched three scoreless innings to get the game to Herrera in the 12th. McCarthy didn't allow a hit and struck out two.
"Good two-seamers and good defense," McCarthy said. "I knew, extra innings, I had to throw strikes and go as long as I can. It was great. Good team win."
Gordon picked an opportune time for his first home run of the season, sending a 2-1, 97-mph fastball over the bullpen in right field off Red Sox closer Craig Kimbrel in the ninth inning, tying the score at 3.
Earlier, right-hander Brad Keller showed exactly why the Royals kept the Rule 5 Draft acquisition and believe in his potential as he struck out Hanley Ramirez with a 99-mph heater with the go-ahead run on third base and one out in the seventh inning.
Moments later, Keller showed why they must continue to show patience with the rookie as he fired a wild pitch, allowing the lead run to score.
Royals starter Jakob Junis was solid for five innings. He carried a 2-0 lead into the sixth when his out pitch, his slider, suddenly betrayed him. Mitch Moreland jumped on the 2-1 pitch from Junis with one out and blasted it over the right-field wall.
With two out, Rafael Devers pounded on another slider and belted it off the right-field wall for a double. Jackie Bradley Jr. then fisted a 3-1 slider into an open spot on the left side of the shift for an RBI single.
Junis went six innings and gave up seven hits and two runs. He walked one and struck out five.
MOMENT THAT MATTERED Some old-school Royals baserunning pulled off a run in the sixth. Jay led off with a single and moved to second with one out on Lucas Duda's single to left-center. Alcides Escobar hit into a fielder's choice, pushing Duda to third. With Gordon up, Escobar took off from first on a delayed steal. Escobar stopped several steps before second base to force a rundown. And as that rundown started, Jay sprinted for home plate and made it without a throw.
UP NEXT Left-hander Danny Duffy (0-3, 5.40 ERA) takes the mound at 12:05 p.m. CT on Wednesday for the series finale at Fenway Park. Lefty Drew Pomeranz (0-1, 7.27) will start for the Red Sox. Duffy gave up four runs and six hits over six innings on Friday in a no-decision against the White Sox.