It was Nadal's first defeat of the season on clay, ending a run of 17 straight victories, and only the third and fourth sets he had dropped on his favoured surface in 2017.
For Thiem, it was revenge after losing to the Spaniard in finals at Barcelona and Madrid – and hinted at a possible title charge at the French Open, which begins later in May.
The Austrian was dominant in the opening set as he raced into a 5-1 lead.
Nadal regained some composure and managed to fight back to 5-4, but he could not prevent his rival from taking the set.
The pair served out the opening six games of the second, but Thiem broke in the seventh before opening up a 5-3 lead.
He then cracked Nadal's service game again to secure a memorable victory.
The 23-year-old will face Novak Djokovic.
Is the French Open now a two-horse race?
There’s a new rivalry in town: Rafael Nadal v Dominic Thiem.
The Austrian’s triumph in Episode III – after back-to-back defeats in Barcelona and Madrid – proved he can not only unsettle clay’s finest, but crucially see out victory. Nadal was off-colour, notably serving a double to gift his opponent match point, but Thiem’s ultra-aggressive strategy rattled the seven-time champion.
Nadal’s attention now switches to the French Open, where he will target a 10th title. But those who thought his coronation would be a procession will be having a serious rethink; Thiem is a genuine contender and, after three promising displays against the Spaniard (even if two ended in defeat), is the best bet to stop Nadal.
Andy Murray and Novak Djokovic will also want a say, but neither man’s form screams title charge at this stage. The two in-form players are Nadal and Thiem – and if the draw keeps them apart at Roland Garros, it would be little surprise to see them contesting another final.
Read the original article on Eurosport: Thiem shocks Nadal on Rome clay - is French Open now a two-horse race?