Rafael Nadal moved into the final of the Rogers Cup in Montreal after beating world number one and top seed Novak Djokovic 6-4 3-6 7-6 (7-2).
It was Nadal's second victory in three meetings with the Serb this year and his 21st win in 36 matches overall.
The Spaniard built a 6-0 lead in the deciding tie-break and went on to wrap up victory in two hours and 20 minutes.
In the other semi-final, Milos Raonic beat his fellow Canadian Vasek Pospisil 6-4 1-6 7-6 (7-4).
Nadal, who lost in the first round to Steve Darcis at Wimbledon, has won 47 of his 50 matches this year, including a five-set French Open semi-final triumph against Djokovic, and will rise to number three in the world rankings regardless of whether he wins Sunday's final.
The defeat ended a 13-match winning run in Canada for Djokovic, who also won the title in 2007 before his back-to-back successes in 2011 and 2012.
Djokovic, 26, took the match into a deciding set after he came from 40-0 down to break serve in the eighth game of the second.
But 27-year-old Nadal, winner of eight titles this year, reached his 10th final of 2013 on his third match point when Djokovic sent a return long.
"I played a very high level tonight, I think. I played with the right decisions in the important moments," Nadal said.
"It was a very close match, there were very few points that decided the winner," Djokovic observed. "I had my chances. He had his chances, at the end he played better.
"I made a lot of double faults, which I couldn't explain, in the first set especially. After that I served well in the important moments. But he returned quite well. He was staying closer to the line and picking up the returns really, really well."
Meanwhile, world number 13 Raonic prevailed in the first ATP semi-final between Canadians since Martin Wostenholme beat Andrew Sznajder in Rio de Janeiro 23 years ago.
Raonic is the first Canadian into the tournament's final since 1958, when Robert Bedard won the event. His victory ensured he will be his country's first representative in the top 10 of the ATP world rankings.
Nadal has won all three of his previous meetings with Raonic, two of which have been on hard courts similar to those in Montreal.
Meanwhile Wimbledon champion Andy Murray reached the final of the doubles with fellow Scot Colin Fleming, defeating sixth seeds Robert Lindstedt and Daniel Nestor 6-3 6-0.
Murray had treatment on his back injury but said: "I just wanted to make sure there was nothing wrong with it but it was fine after I saw the physio, it loosened up."
The Scottish pair face third seeds Alexander Peya of Austria, and Brazilian Bruno Soares in the final and Murray says the doubles event is good preparation for his defence of the US Open, which begins on 26 August.
"In terms of returning and sharpness up at the net it's perfect," the 26-year-old said. For certain things it helps a lot."