Rafael Nadal beat top seed Novak Djokovic 6-4, 3-6, 7-6 (7-2) to reach the final of the Rogers Cup in Montreal, Canada.
The defeat ended a 13-match winning run in Canada for Djokovic, who won the title in 2007 before back-to-back success in 2011 and 2012.
Nadal held off Djokovic in three tense sets as the Serb came from 40-0 down to break serve in the eighth game of the second.
The 27-year-old Spaniard proceeds to his tenth final of the year where he will meet Canadian Milos Raonic who beat fellow countryman Vasek Pospisil 6-4, 1-6, 7-6 (7-4) in the other semis.
Nadal built a 6-0 lead in the deciding tie-break and went on to wrap up victory in two hours and 20 minutes.
“I played a very high level tonight, I think,” Nadal said. “I played with the right decisions in the important moments.”
It was Nadal second victory in three matches against the world number one this year and his 47th victory in 50 matches this year.
Meanwhile, American Serena Williams saw off a spirited Agnieszka Radwanska 7-6 (7-3) 6-4 to reach the final of the Rogers Cup in Toronto.
Serena, who was a previous winner in 2001 and 2011, will face Romania’s 27th seed Sorana Cirstea who beat China’s Li Na 6-1, 7-6 (7-5).