Thiem lost to Nadal in the French Open final last year but had earlier beaten the Spaniard at the Madrid Open and had the measure of him again here.
The Austrian prevailed 6-4 6-4 with a sublime display and has the opportunity to win an ATP Tour title on the red dirt for the ninth time in his career.
While 2018's beaten Roland Garros finalist looks to be building towards another challenge in Paris, the usually dominant Nadal has now failed to reach consecutive finals on his favoured surface.
The two players appeared evenly matched early in an entertaining contest, but a series of Nadal double faults contributed to the first break of the match in Thiem's favour.
A big hold in a marathon seventh game kept the deficit to a single break, yet there was no let up from Thiem as he served out the opener.
Thiem was unperturbed as he squandered a pair of break-point opportunities at the start of the second, creating another chance at 2-2 with a number of marvellous drop shots.
Nadal went wide and the world No.5 fought through a final service game to stay in front and dump out the home favourite, moving through to face Daniil Medvedev.
Kei Nishikori has returned to form in Barcelona, but he was denied a place alongside Thiem in the final by the battling Medvedev.
Another high-quality last-four meeting saw Medvedev take the first set and then, having been pegged back, crucially nudge in front again late in the decider.
At the Hungarian Open, Laslo Djere — the last remaining seed — fell at the semi-final stage to Matteo Berrettini in straight sets.
The Italian will face Filip Krajinovic, who defeated Pierre-Hugues Herbert 6-2 6-2, for the title in the final in Budapest.