The 36-year-old Federer was on Thursday outplayed from the baseline in the early going by the unseeded Ferrer, who broke the 19-time Grand Slam champion's serve twice in taking the first set, reports Efe.
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. And even if he had won the first six matchups between the two men without losing a round, Federer could sniff out a certain challenge.
Swiss second seed Roger Federer used a dominant service game to earn a 6-3 7-6 (5) semi-final win over Dutchman Robin Haase at the Rogers Cup in Montreal on Saturday.
"I've been against the wall a couple times this week and I'm very happy I've come out several times just playing really good tennis in those situations", Shapovalov said.
'And then the only thing that maybe is missing is practice, but sometimes practice is overrated. "When I broke him, I got that little bit of confidence, and I started believing in my shots again".
"I came from vacation, did some fitness, saw how I was feeling and said, 'You know what, I practiced so much the a year ago, let's go play some matches'".
Federer is undergoing a resurgence this season after it appeared to many he might be slowing down as he transitions through his mid-30s.
Zverev, 20, will have a much tougher time against the skilled veteran Federer than he did in beating Shapovalov.
"I wasn't too sharp on the big points", said Shapovalov, who made headlines in February for inadvertently blasting a ball into an umpire's face in a fit of rage during a Davis Cup quarter-final.
Ferrer capitalised by winning the first set to end Federer's streak of 32 consecutive sets won, a record that dates back to his loss to Tommy Haas at the Stuttgart Open on June 14.
Haase will face the victor between second-seeded Roger Federer and Roberto Bautista Agut in the semifinals on Saturday.
Monfils, who saved four match points while beating Kei Nishikori on Wednesday, seemed to be in control of the match when he led 3-1 in the second set after winning the first.