Roger Federer set a course to bag his third Rogers Cup title, after he beat Dutchman Robin Haase 6-3, 7-6 (7/5) to reach the final.
Through this victory, which was peppered with nine aces, the 36-year-old legend has extended his match-winning streak to 16, which is his longest win streak in five years.
Federer, who is eyeing his 27th Masters 1000 title and his third Canadian Masters title, will meet either German Alexander Zverev or young Canadian Denis Shapovalov in Sunday's final.
In the women's section, former world No. 1 Caroline Wozniacki beat Sloane Stephens in straight sets in Saturday's first semifinal.