Roger Federer set up a French Open semi-final against defending champion Rafael Nadal by overcoming fellow Swiss Stan Wawrinka in four sets.
Shortly before Federer won, Nadal completed a 6-1 6-1 6-3 win over Kei Nishikori in the quarter-finals.
But 20-time Grand Slam champion Federer endured an energy-sapping three hours and 17 minutes on Court Suzanne Lenglen to win 7-6 (7-4) 4-6 7-6 (7-5) 6-4.
“The complete dream would be to win the tournament,” said Federer, 37.
“But I’m very happy, number one, to be back in another semi-final of a Grand Slam. It hasn’t happened in the last year or so. I had some tough losses in fourth rounds or quarters.
“So from that standpoint, I exceeded my expectations here.”
Both quarter-finals were interrupted by a thunderstorm in Paris.
Federer is playing at Roland Garros for the first time in four years, having missed the 2016 event with a back injury and skipped the past two clay-court swings to preserve his body.
He faced the toughest test of his clay comeback so far against Wawrinka, the 2015 champion, who had progressed beyond the second round of a Grand Slam for the first time since losing in the 2017 French Open final.
Federer, the third seed, dropped his first set of the tournament and only converted two of his 18 break points, although the second of those – in the ninth game of the fourth set – proved decisive.
“Stan has had some tough years with injuries,” added Federer, who is into the last four of the competition for the first time since 2012.
“I had to break his rhythm because he’s so powerful. I took some risks and they came off but I was pretty lucky at the end.”