Novak Djokovic denied Rafael Nadal another installment in his rivalry with Roger Federer, ousting Nadal 7-5, 6-3 to book his own finals meeting with Federer at the Montreal Masters.
Federer and Nadal were on course for their fifth meeting in the finals this season, but Djokovic crashed the party to reach his fifth final this year.
Top-seeded Federer reached the final on schedule in a 7-6 (8/6), 6-2 win over Radek Stepanek.
In Djokovic, Federer will face a player he has beaten in all four of their previous encounters.
Djokovic has shined in his first hardcourt tournament in months.
The Serb fired 11 aces and saved all eight break points he faced against Nadal, who won the tournament the last time it was played in Montreal two years ago.
"This is one of the biggest wins of my career. I beat him [on hardcourt] in Miami and I've done it again," Djokovic said. "I played some really impressive tennis. It was a great atmosphere," the winner of three titles this season said.
"He was just too good today," said Nadal, who had won five of his six meetings with Djokovic.
Federer booked his fifth final in his last six tournaments as he won his 40th match of the season.
"I was very happy the way I played today," said the Swiss star, who is just one win away from a 50th career title.
"It was a tough match with a lot of crucial points, a lot of shots played on reaction," he said.
"I couldn't really dictate play, he kept coming at me," Federer said. "But I came up with some really nice passing shots when I had to.
"After while I also started to serve really well, so I was really happy with my performance," he said.
Federer had to fight for 53 minutes to clinch the first set against Stepanek, who is ranked 60th after making a comeback from a nerve injury that affected his racket hand.
The Czech had lost three of four matches against 11-time Grand Slam winner Federer.