Tsitsipas had never won a set in his previous three meetings against claycourt specialist and 11-times French Open champion Nadal, but the Greek drew first blood by saving a break point to hold in the 10th game and take the first set.
Stefanos Tsitsipas pulled off one of the biggest wins of his short but remarkable career by beating Rafael Nadal 6-4 2-6 6-3 on Spanish soil on Saturday to book his place in the Madrid Open final against world number one Novak Djokovic.
Tsitsipas, 20, had never won a set in his previous three meetings against claycourt specialist and 11-times French Open champion Nadal, but the Greek drew first blood by saving a break point to hold in the 10th game and take the first set.
He broke Nadal six times in the epic three-setter played late into the Madrid night, lasting two hours and 34 minutes, while saving 11 of the 16 break points he conceded to his opponent.
Before Nadal met Tsitsipas, he had won 26 of 27 service games in this year's Madrid Open, and the Spaniard had breezed past the youngster in the Barcelona Open final last season and this year's Australian Open semi-finals.
Nadal won the second set and looked to have the physical edge over his opponent, who has also been playing doubles in Madrid.
But Tsitsipas, the Next Gen ATP finals champion, came back stronger in the decider with impressive court coverage and broke Nadal to take a 5-2 lead although he could not immediately serve out for the match.
He earned repeated match points in the next game when Nadal was serving and after the Spaniard had dug deep to save three of them he could only find the net on the fourth.
Tsitsipas dropped his racket and put his hands to his face to savour his first victory over the titan of claycourt tennis, completing a clean sweep of wins over Djokovic, Nadal and Roger Federer in less than 10 months.
Nadal, meanwhile, was left reflecting on a third straight semi-final exit on clay after losing to Fabio Fognini in the Monte Carlo Masters and Dominic Thiem in the Barcelona Open.
"It means the world, it's really nice to be able to play this way, it's an unbelievable feeling," Tsitsipas told reporters.
"I had to show mental discipline and being tough and decisive in those crucial moments was key, I had to take all opportunities because Rafa is a fighter, he doesn't give you many points."
Djokovic reached the final after seeing off last year's runner-up Dominic Thiem 7-6(2) 7-6(4) in a gruelling, high-quality match lasting two hours 22 minutes.
Tsitsipas beat Djokovic in the Rogers Cup in Toronto and was looking forward to another match with the Serbian.
"I'll have to be mentally prepared for Djokovic, I'm sure he wants the title as badly as me," he added.
Djokovic, winner in Madrid in 2011 and 2016, was fully rested after his quarter-final opponent Marin Cilic had withdrawn because of food poisoning, while Thiem had to dig deep to beat Roger Federer in a gruelling three-setter.
Thiem, who won the Barcelona Open last month and was on an eight-match winning streak, struck an early blow by breaking Djokovic in the fourth game but the Serbian responded by winning the next three games and saved two break points in the eighth.
The Serbian won the first tiebreak comfortably after poor shot selections from Thiem but was in trouble in the second set when he trailed 4-2.
He immediately broke back and had the chance to serve for the match at 6-5 but squandered the opportunity with a double fault.
Yet once again Djokovic had the edge in the tiebreak, earning three match points and taking the first as Thiem smashed a baseline backhand well out, booking his place in a first final since winning the Australian Open.