Roger Federer will play Jo-Wilfried Tsonga in the final of the Rogers Cup after a straight sets victory over Feliciano Lopez in Toronto, Canada.
The Swiss 17-time Grand-Slam winner, 33, who is targeting his 80th career title, beat the Spaniard 6-3 6-4.
"I served well, I was aggressive and I was able to really play the way I wanted to play tonight," said Federer.
World number 15 Tsonga, 29, who beat Andy Murray in the quarter-finals, cruised past Grigor Dimitrov 6-4 6-3.
This will be Federer's 120th career final, while Frenchman Tsonga will be playing in his 20th.
The Swiss has won two of his four finals this year, winning in Dubai and Halle while Tsonga lost his only other final in 2014, in Marseille in February.
However, Tsonga is in good form this week, beating world number one Novak Djokovic and Murray in successive days.
"I'm more consistent and it's good because it [helped] me beat three guys in the top 10," said Tsonga.
"I didn't do that [for a] couple of years now and it gives me hope for the rest of the year."
Federer leads Tsonga 11-4 in the career head-to-head, having won the last two encounters, which came in the Australian Open and Monte Carlo Masters this season.
The Swiss added: "He can overpower guys, serve up a storm and then play really aggressive with his forehand and also be solid in his backhand."