Nadal defeated Djokovic in the semifinals of the French Open this year on his way to winning the championship and will be aiming for his ninth title of the season but only his second on hard courts. The others have all come on clay.
"I said yesterday the only chance to win against Novak, the only tactic is to play very well," Nadal said. "And I did. I played a very high level tonight, I think. I played with the right decisions in the important moments."
In Sunday's final, Nadal will play Milos Raonic, who beat fellow Canadian Vasek Pospisil 6-4, 1-6, 7-6 (4) to ensure he'll crack the top 10 in the world rankings for the first time in his career.
Nadal and Djokovic were playing for the 36th time, tying the record for matches contested by two players in the Open era set by John McEnroe and Ivan Lendl. Nadal has 21 victories to Djokovic's 15.
"It was a very close match," Djokovic said. "Whenever we play against each other, it's always a thrilling match for crowd to see. We are both competing at the high level. We both want to win these matches."
Nadal, who suffered a disappointing first-round loss at Wimbledon, took a 6-0 lead in the third-set tiebreaker before converting his third match point when Djokovic hit a return long.
With a career-best record of 47 wins in 50 matches this year, Nadal will rise to No. 3 in the rankings whether he wins the final or not.
"Milos is a fantastic player," Nadal said. "I know him well. He has played a fantastic tournament here. I'm very happy for Canada to have two players in the semifinals."
Raonic, ranked 13th, will be going for his second title of the season and fifth of his career. He'll become the first Canadian to be ranked in the top 10 when the new rankings are released on Monday.
"They're all very special, but I think the top-10 one stands out more just because it's a goal that I set this year," he said. "It looked a little bit difficult after how I played recently, but to do it here in Montreal is a relief and it's a happy feeling."
Raonic has lost all three of his previous matches against Nadal in his career and has never won a set against him either.
"Last time, he gave me a whooping in Barcelona," Raonic said. "It was a very different surface on clay. And at home for him, it was tough."
The last Canadian to win the event was Robert Bedard, who took the last of his three titles in 1958.
On the final point of the third-set tiebreaker, Raonic stretched to get to Pospisil's shot at the net, forcing his opponent to make a lunging volley that went into the net.
"I was winning most of the points from the baseline once the rallies were started," said Pospisil, 23. "The tiebreak got away from me a little bit there at the end, a couple of loose points. But I went for it. No regrets. I didn't want to lose the match playing defensively. I tried to go for it even with the nerves that there were. This time it didn't work out, but that's the right way for me to go."
Raonic said they likely will meet many more times.
"This time it happened on the biggest stage for us so far in both our careers - the semis of a Masters," he said. "But for it to really be a big time rivalry, it always has to be on big stages."
"For my sake, I hope we'll see each other a lot more," Pospisil said. "That will mean I'll keep up the good form. I don't see why not because I've been doing really well the last couple months."
The last time two Canadians were in the semifinals of an ATP Tour event was in 1990 at Rio de Janeiro, where Andrew Sznajder lost in the final and Martin Wostenholme fell in the semifinals.
Meanwhile, Andy Murray, the Wimbledon champion, reached the doubles final with Colin Fleming, the pair seeing off sixth seeds Robert Lindstedt and Daniel Nestor 6-3 6-0.
They now face third seeds Alexander Peya and Bruno Soares, with Murray citing the doubles event as good preparation in his bid to successfully defend his US Open title, which starts on 26 August.
"In terms of returning and sharpness up at the net it's perfect," Murray said. "For certain things it helps a lot."