World number one Andy Murray shrugged off a sluggish start to reach his fifth French Open semi-final with a 2-6 6-1 7-6(7/0) 6-1 defeat of Japan's Kei Nishikori.
Murray dropped serve twice in the opening set as the gremlins that have dogged his season briefly returned, but he was generally in charge after that against the eighth seed.
Nishikori, who beat Murray in the quarter-finals of last year's US Open, could not sustain his early form and although he courageously forced a third-set tiebreak, he lost that 7-0.
Murray, runner-up last year, recovered an early break of serve in the fourth set and reeled off the last six games to set up a repeat of last year's semi-final when he produced a dazzling display to beat Stan Wawrinka.
Wawrinka demolished Croatian Marin Cilic 6-3 6-3 6-1 in awe-inspiring fashion.
The Swiss third seed broke the big-serving Cilic six times, spraying the court with winners throughout the match to ruthlessly sweep the seventh seed aside.
Wawrinka, who lifted the Musketeers Cup in 2015, ended Cilic's ordeal on his first match point with a second-serve ace.
Dominic Thiem stunned defending champion Novak Djokovic in straight sets to set up a semi-final against Rafael Nadal.
Thiem showed why he is one of the most exciting young talents in the game, blasting 38 winners in a stunning 7-6 (7/5) 6-3 6-0 victory.
But Djokovic looked a shadow of the player who won in Paris 12 months ago to become the first man since 1969 to hold all four majors at the same time.
The Serbian virtually gave up in the third set in what was a shocking end to his title defence.
The result was all the more remarkable given Thiem won just a single game the last time they met at the Italian Open in Rome three weeks ago.
He had only won one set in all their five previous meetings and lost easily to Djokovic in the last four 12 months ago.
But that was a very different Djokovic. Even if it was clear something was still missing during his earlier rounds, no one would have expected the match to go quite like this.
Djokovic led 4-2 in what was a brutally physical first set lasting 73 minutes but played a poor game to hand Thiem the break back, serving two double faults.
Djokovic then had two chances to take the set at 15-40 on Thiem's serve in the 10th game, but the 23-year-old saved them both in convincing fashion.
Conditions were cool and windy, with the court playing slow, but Djokovic could not blame that for the three awful backhands he played to give away the tie-break.
It was another sign that the Serbian is still searching for the mental and physical resilience that made him such an immovable force.
Thiem was showing all his considerable skills, flashing backhand winners down the line and punishing Djokovic with his heavy forehand.
He quickly moved 3-0 ahead in the second set and, although Djokovic initially showed some fight, it soon drained away.
The final set was the first time Djokovic has lost a set to love at a grand slam event since the US Open in 2005.
.@ThiemDomi downs defending champion Djokovic to reach the #RG17 SFs!— Roland-Garros (@rolandgarros) June 7, 2017
Dominic Thiem fait tomber le champion en titre ! pic.twitter.com/U9iKJWbT7k
Nadal moved into a 10th French Open semi-final after opponent Pablo Carreno Busta retired.
Carreno Busta received treatment for an abdominal problem at the end of the first set before calling it a day with Nadal leading 6-2 2-0.
The title favourite, who has gone on to lift the trophy the other nine times he has made the last four, has lost just 22 games in five matches so far.