Djokovic and Thiem set up another French Open clash
Djokovic defeated Alexander Zverev while Thiem was a straight-sets winner over Karen Khachanov.
World number one Djokovic is still to drop a set after a 7-5 6-2 6-2 victory over fifth seed Alexander Zverev, while Thiem defeated Karen Khachanov 6-2 6-4 6-2 to reach a fourth successive semi-final at Roland Garros.
Djokovic and Thiem faced each other in the semi-finals in 2016, with the Serbian winning easily, but Thiem turned the tables the following year in the quarter-finals before reaching his first grand slam final here last year.
Remarkably, it is the first time at a slam since the French Open in 2012 that Djokovic, Federer and Nadal have all made it through to the semi-finals.
Djokovic was only briefly in trouble in the opening set when he dropped serve to leave Zverev serving for the set at 5-4.
However, the German could not take advantage and then double-faulted on set point two games later.
Three successive double faults to end the second set all but put the nail in the coffin, with Djokovic easing through to the last four here for the first time since winning the title in 2016.
Thiem had to battle his way through the first week in Paris but has found his best form in the last two rounds and was far too strong for 10th seed Khachanov.