Roger Federer extended his winning streak to 16 matches and moved into the Rogers Cup final with a straight-sets victory over Robin Haase in Montreal on Sunday (AEST).
The No.2 seed, Federer was typically dominant on serve for much of the match and never really looked likely to fall victim to an upset against an opponent playing a Masters 1000 semi-final for the first time.
Haase battled gamely, particularly in an entertaining second set that went all the way, but was ultimately beaten 6-3 7-6 (7-5) as Federer earned the latest triumph of a sensational 2017 season.
Should he go on to win the final, the Australian Open and Wimbledon champion will secure a top-two seeding at the US Open as he continues his bid to reclaim the world number one ranking.
Still moving magnificently in the week he turned 36, Federer made an ominous start by moving 2-0 ahead, taking the fifth break point that came his way in Haase's opening service game.
Although the Dutchman surprisingly broke back, Federer immediately restored his two-game cushion before holding to love for the second time in three attempts.
The Swiss duly wrapped up the first set, but faced greater resistance thereafter as Haase produced some impressive serving of his own.
Having performed so admirably to force a tiebreak, Haase started slowly but again showed his character by winning four points in a row from 4-1 down.
It was not enough for the underdog, though, and Haase was beaten when a loose forehand drifted wide on Federer's first match point.
Alexander Zverev and Canadian teenager Denis Shapovalov, the shock conqueror of Rafael Nadal earlier this week, meet in Sunday's (AEST) second semi-final.