Top-ranked Roger Federer defeated Fernando Gonzalez 6-1, 5-7, 6-3 on Saturday and will meet Richard Gasquet in the Rogers Cup final.
Gasquet put away Andy Murray 6-2, 7-5 to become the first unseeded finalist at the tournament in three years. He will attempt to become the first Frenchman to win the tournament which began in 1881.
"He has really been able to back it up now," Federer said. "He's playing well, I know that he's a good player. I expect a tough match."
The 20-year-old Gasquet beat Federer in their first clash last year in Monte Carlo, but he has bowed to the Swiss star four times since, including this year at Indian Wells, Halle and Wimbledon. Still, he was excited to earn another crack at Federer, who has 53 consecutive wins in North America since 2004.
"It's a gift for me to play in the final against Federer, it will be fantastic," Gasquet said. "I like his game." Unlike Gasquet, who has dropped one set in five matches this week, Federer has had to battle to reach the final.
He endured a third successive three-set match, although it started as if he would romp past 15th-seeded Gonzalez.
Federer won the first five games and took the first set in 20 minutes. Gonzalez was limited to 10 points.
But the Chilean improved his service game, held without relative trouble, and unexpectedly broke Federer to love in the last game to even the sets.
Just when Gonzalez looked comfortable on court with the world No. 1, Federer broke him in the seventh game and won the last three to end the match in 1 hour, 50 minutes.
"Once I got a break, I played well again and broke him once again," Federer said. "So it really shows how important breaks are and how the momentum can shift."
Federer won the Rogers Cup in 2004 but couldn't defend it last year because of injury. He will be going for his 11th career Masters Series title and 40th career singles title.
Gasquet could win his third title in as many months. He has won 15 of his last 17 matches, including titles at Nottingham in June and Gstaad last month.
He broke Murray a fourth time in the last game, in his first meeting with the 19-year-old Scot. Gasquet won 32 out of 39 of his first serves, and aced Murray five times.
"I had a lot of confidence before this match because I beat Tomas Berdych and James Blake on this court," Gasquet said. Gasquet will appear in his second Masters Series final - he was runner-up to Federer at Hamburg last year.
The Rogers Cup marks the sixth final of his career. He's won three titles, beside the two most recent, he won 2005 Nottingham.