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 Toronto 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 will play Alexander Zverev on Sunday as the fourth-seeded German defeated Canada's Denis Shapovalov 6-4, 7-5 for a spot in the final.
"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."