Roger Federer maintained his superb run of form with a straight-set win over Dutchman Robin Haase in the semi-finals of the Rogers Cup.
The Swiss, 36, won 6-3 7-6 (7-5) in Montreal to extend his winning streak to 16 matches and close in on a third Canadian Masters title.
Federer is undefeated at Grand Slam and Masters 1000 level this year.
He faces Alexander Zverev in Sunday's final after the German ended teenager Denis Shapovalov's stunning run.
"I'm happy - most happy that I'm actually really healthy going into the finals," said second seed Federer, who has won Masters titles in Indian Wells and Miami in 2017.
"I haven't wasted too much energy. I've been able to keep points short. I've been really clean at net. I think my concentration and just my playing has gone up a notch. I'm just playing better."
Federer could earn a 94th ATP Tour title of his career on Sunday, putting him level with Ivan Lendl in second place in the Open era list.
Awaiting him in the final is 20-year-old fourth seed Zverev who beat 18-year-old Canadian Shapovalov 6-4 7-5 in one hour and 43 minutes.
The world number 143's incredible run in his home country had seen him defeat Juan Martin del Potro and top seed Rafael Nadal but Zverev proved a step too far.
"I told him he had a great run, well done to him, to not worry too much that he lost today," said Zverev. "I also told him that this is just the first match of very, very many that we will play against him.
"Hopefully a lot of other big matches, maybe in Grand Slams, maybe in finals of tournaments. I just told him that this is the beginning for him."