Thiem showed his ability to stay in long rallies against the world number one, and despite some poor errors he showed enough class, and took advantage of some luck, to reach the final in Paris.
"If you reach the final here it's always against Rafa," the 25-year-old said on court. "It was an amazing experience last year and I will try everything to be better this year."
Watch the French Open live on Eurosport and the Eurosport Player
Australian Open
'It would be unbelievable' - McEnroe assesses prospect of Federer winning again
Resuming in the third set after leaving the court on Friday due to the weather conditions, Djokovic looked to be in a far better place than he was on Friday as he quickly broke to get back on serve.
However, Thiem dug in, winning a couple of superb rallies before holding serve to reach 6-5, putting the pressure back on Djokovic.
The 25-year-old, who lost to Nadal in last year's final, handled the elements better as he kept alive his dream of winning a first major title when he takes on the 11-times champion again on Sunday.
An epic game followed as Djokovic managed to save three set points before Thiem eventually found the break to secure the set and move 2-1 ahead on sets.
Djokovic, in the headlines for complaining on Friday, then drew more attention to himself as he had an argument with the chair umpire.
“Well done, well done man. You’ve earned yourself a name,” Djokovic said as he earned himself a warning for taking too much time on his serve.
Thiem benefitted from a couple of slices of luck with the net helping him on more than one occasion, with one of those seeing him secure a critical break back in the fourth game of the fourth set.
Djokovic, much the better player for most of the morning, started to put pressure on Thiem and the Austrian began to make a few unforced errors as the game tightened up again.
A double fault from Thiem saw Djokovic break and then serve to level up and force a deciding set.
Thiem missed the chance for an early break despite a barely believable slice across the net, but the net came to his aid again in the fourth as he found that break and went 3-1 ahead.

'No way!' - Thiem produces one of the shots of the tournament

The weather, which plagued the match, returned again with the score at 4-1 and led to a delay of over an hour.
However the stoppage, combined with a contentious call on the first point after the delay, seemed to reinvigorate something in Djokovic as he amped up his already effective tactic of charging to the net, volleying brilliantly when there.
He served out and then found a break that made it look as if the momentum of the match would completely swing. And yet a double fault played a part of a terrible service game from the Serbian, and Thiem broke straight back before struggling with nerves at crucial moments.
And that allowed Djokovic right back in, saving two match points and breaking again and pushing the final set to 5-5.
However, Thiem rallied in Djokovic's next service game and broke to finally end the contest after over four hours, and end Djokovic's run of 26 major victories in a row, denying him the chance of a second non-calendar Slam.
"It was an epic match," claycourt warrior Thiem, who also beat Djokovic here in 2017, said. "Somehow I had the feeling that I had the lead in the whole match.
"I luckily got the better in the end."
Australian Open
'We desperately need to see that' – McEnroe backs Kyrgios call to push new personalities
Australian Open
'What would Novak do?' – Medvedev credits Djokovic for two-set comeback