If Federer manages to overcome Haase he will face either fourth seed Alex Zverev or Canadian teenage wildcard Denis Shapovalov in the final.
He broke service for a 2-1 lead in the third only to hand it back in the next game, but a roar went up when Mannarino wasted a chance to put away a game point and Shapovalov jumped on the chance to break for a 5-4 lead.
Swiss star Roger Federer outclassed Roberto Bautista Agut as he inched closer to his sixth title of the season with a 6-4, 6-4 win in the quarterfinals of the Montreal Masters tennis tournament here Friday.
The 36-year-old began the second set with a break and cruised through the rest of the match, which lasted just over an hour, to book a last-four clash with Dutchman Robin Haase.
But Shapovalov broke again in the ninth game and clinically served out to the delight of the crowd.
Holding to love to clinch the opening set, after breaking in the ninth game, the 19-time Grand Slam victor did not look back, winning 81 per cent of total points on his first serve.
The pair met in a Davis Cup World Group play-off in 2012 with Federer winning 6-1, 6-4, 6-4.
"It's what I dreamed of all my life growing up, playing guys like Rafa (Nadal), Roger (Federer), Andy (Murray)", Shapovalov said.
"I believe I served better earlier in the match, but I don't think Bautista-Agut returned as well as Ferrer", Federer said. "Sometimes he tends to just roll the ball in and use the big serve, or he uses a slice a lot and comes in". "Both things combined, two major factors in a beginning of a match, I was able to get into the match better". Federer was coming off a three-set win over another Spaniard, David Ferrer, against whom he is 17-0.
Haase and Schwartzman were both looking to reach their first semifinal in an ATP Masters 1000 event.
The 18-year-old Shapovalov, from Richmond Hill, Ontario, advanced to a quarterfinal meeting Friday night with France's Adrian Mannarino, who defeated Hyeon Chung of South Korea 6-3, 6-3.
"It's tough to come out and serve after a 12-minute rain delay".
"I played a lot of good matches, especially yesterday against (seventh-seeded Grigor) Dimitrov", Haase said.