The 36-year-old Federer blasted nine aces and lost just nine points on his serve as he extended his match win streak to 16 — his longest win streak in five years.
He raised his game to another level when it mattered most, beating Netherlands Robin Haase 6-3, 7-6 (7/5) in just 75 minutes.
“I’m very excited to be back in the finals,” Federer said. “A bit surprising, to be quite honest, because I hadn’t practiced much.”
Federer has taken more time off this year than usual. He skipped the clay-court season from April to mid-June.
“I came from vacation, did some fitness, saw how I was feeling and said, ‘You know what, I practiced so much the last year, let’s go play some matches.’
“It’s a big bonus right now and I hope I can play as free as I have so far in the finals tomorrow.”
Second seeded Federer will clash on Sunday with German Alexander Zverev who ended the Cinderella run of 18-year old Canadian Denis Shapovalov with a 6-4, 7-5 win in the other semi-final.
Federer is undergoing a resurgence this season after it appeared to many he might be slowing down as he transitions through his mid-30s.
“Confidence can get you a long way, and if you’re feeling fine physically and you are ready to fight mentally you have a lot of things in the bag,” said Federer, who would earn the second seed at the upcoming US Open if he wins in Montreal.
“And then the only thing that maybe is missing is practice, but sometimes practice is overrated. It’s all about the matches at some stage.
“I’m happy I’m playing as well as I am this year on the match courts. At the end that’s what matters because I spent hours and hours on the practice courts in the last year.”
The 19-time Grand Slam winner Federer is seeking his 27th Masters 1000 title and his third Canadian Masters crown after wins in 2004 and 2006.
Haase, who hit 17 winners, made a late charge and forced a second-set tiebreak before Federer stymied the challenge to win the match.
Zverev, 20, will have a much tougher time against the skilled veteran Federer than he did in beating Shapovalov.
– ‘Life-changing week’ –
Zverev came into Montreal with four titles this season while Shapovalov had just three career match victories. Shapovalov leaves Montreal with seven career wins, including a shocking upset of 10-time French Open champion Rafael Nadal.
“It is a completely life-changing week,” said Shapovalov, whose dream run this week also included a win over former US Open champion Juan Martin Del Potro.
The fourth seeded Zverev broke Shapovalov at 4-4 in the first set then served for the set to silence the partisan crowd.
Ultimately, Zverev played better in the key moments, finishing with two aces, winning 81 percent of his first-serve points and breaking the Canadian three times.
Shapovalov finished with three aces, six double faults and won 64 percent of his first-serve points in the one-hour, 43-minute match.
Download our app and read this and other great stories on the move. Available for Android and iOS.