Alexander Zverev battled his way back into the French Open semi-finals a year after suffering a season-ending ankle injury.
The German left Philippe Chatrier in a wheelchair 12 months ago after being forced to retire during a compelling last-four clash with Rafael Nadal.
Zverev had struggled since returning to the tour in January but has buried his demons on the Parisian clay and fought for three hours and 22 minutes to make it past surprise package Tomas Etcheverry 6-4 3-6 6-3 6-4.
"That was the most difficult year of my life," he said.
"I love tennis with all my heart. I'm so happy to be back at this stage, I'm so happy to be able to play for a Roland Garros final again. I can't be happier."
Argentinian Etcheverry, 23, did himself huge credit in the biggest match of his career, wowing the Philippe Chatrier crowd with thumping winners and fighting to the end.
But it was Zverev who was just the stronger in the big moments, saving six of the nine break points he faced to make it to the last four here for the third year in a row.
Zverev said of his opponent: "He's playing incredible tennis, he reminds me a lot of (Juan Martin) Del Potro, the way he hits his forehand especially. If he continues playing like this he's going in the quarter-finals here a lot more often for sure and I think he can be top 10.
"I just had to remember that I have a pair of balls that I can use. I hope, I think I deserved to win. I'm just happy to be through."
Fourth seed Casper Ruud battled past 20-year-old Holger Rune 6-1 6-2 3-6 6-3 for the second consecutive year to reach the semi-finals.
The pair had met at the same stage in a bad-tempered match in 2022 with Norway's Ruud beating Denmark's Rune in four sets before falling in the final to 14-time champion Rafael Nadal.
While this year's Scandinavian clash lacked the vitriol, it was equally captivating even though it had looked one-sided at the start.
"Very, very relieved. I came into this match trying to play without pressure but it is not easy playing a big match against Holger who is playing very aggressively," Ruud said.
"In the first set I got a lot of points for free. He made a lot of errors but he fought back. Holger gave me the break early I did it well," said the 24-year-old. "He was the favourite, he won our last match and he has a better year."
"The three sets I won today were a really good level. I feel my game is improving match by match."