Croatian veteran Marin Cilic overcame Russian seventh seed Andrey Rublev in five sets to reach a first semi-final at the French Open.
The 33-year-old, who won the US Open in 2014 and was a Wimbledon finalist three years later, won 5-7 6-3 6-4 3-6 7-6 (2) after a deciding-set tie-break.
In doing so Cilic became only the fifth active player to have reached the last four of every grand slam after Roger Federer, Rafael Nadal, Novak Djokovic and Andy Murray.
After their four-hour, 14-minute slugfest, Cilic said: “The win comes from being me, I played that kind of tennis the whole match. Especially the fifth set was an incredible battle.
“Andrey played incredibly well, it was an incredibly fair-play performance on the court.
“A lot of heart. One had to go down and today was my day. But Andrey also played an incredible match. Bad luck to him.
“I felt more tired emotionally out there because Andrey plays a difficult game, he serves big, hits big, and you don’t have many chances.
“You have to keep up with your level, which I did. Unfortunately I lost that fourth set. I thought I was close to getting the break.
“When you play this long, there will always be ups and downs in the match but I kept my focus in the fifth.”
Cilic will face eighth seed Casper Ruud in the last four after the Norwegian ended the fairytale run of Holger Rune to reach his first grand slam semi-final.
Danish teenager Rune had accounted for Wimbledon semi-finalist Denis Shapovalov and fourth seed Stefanos Tsitsipas during a breakout fortnight, but he found Ruud too hot to handle in a a 6-1 4-6 7-6 (2) 6-3 defeat.