Croatia's Marin Cilic prevailed in a fifth-set tie-break against Russian seventh seed Andrey Rublev to reach his first French Open semi-final.
Cilic, the 20th seed, won 5-7 6-3 6-4 3-6 7-6 (10-2) in a captivating four-hour match on Court Philippe Chatrier.
He fired down 33 aces and 88 winners to edge a heavy-hitting contest in Paris.
The 2014 US Open champion, 33, will meet Norwegian eighth seed Casper Ruud or Danish teenager Holger Rune for a place in the Roland Garros final.
Cilic becomes only the fifth active men's player to reach the semi-finals of all four Grand Slam tournaments.
He joins current world number one Novak Djokovic and former top-ranked players Rafael Nadal, Roger Federer and Andy Murray in managing that feat.
Cilic holds his nerve to oust Rublev
A fifth-set tie-break seemed a fitting end to an enthralling four hour and 10 minute battle on Chatrier - and it was Cilic who rose to the occasion.
The world number 23 closed out the match by winning nine successive points from 2-1 behind in the 10-point tie-break to secure his first major semi-final in four years.
Rublev had survived a match point on his own serve when trailing 5-4 in the fifth, before failing to convert a break point in the following game, and his wait for a maiden Grand Slam semi-final goes on.
The 24-year-old had failed to win a single set in each of his four previous Grand Slam quarter-finals, but it was the Russian who struck first in a meeting between two former junior champions - eventually taking his sixth break point of the opening set before coolly serving it out to love.
Cilic offered an immediate response at the start of the second set, clinching his second opportunity to break for 2-0, and then held off Rublev to level the match on his fifth set point.
Able to maintain consistency on serve, Cilic carried that momentum into the third against his increasingly frustrated opponent - a break in the seventh game proving decisive as, two holds of serve later, a defiant shake of the fist welcomed the completion of the turnaround.
But, as the clock passed the three-hour mark, Rublev seized his first break point since the opening set and a timely first serve, on his third set point, confirmed the match would go the distance.
Amid the intensity of the fifth set, Rublev admirably conceded a point as Cilic pleaded with the umpire over a line call - an act of sportsmanship that drew applause from the Croat.
But there were to be no fine margins in the final act, as Cilic romped through the tie-break to complete another hugely impressive victory to back up his fourth-round win over second seed Daniil Medvedev.
"There was a lot of heart and one us had to go down," Cilic said. "Today was my day but Andrey also played incredibly well - bad luck to him.
"When you play this long there are always going to be ups and downs during the match."