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.