Roger Federer extended his winning streak to 15 matches as he beat Spain's Roberto Bautista Agut to reach the Rogers Cup semi-finals in Montreal.
The 36-year-old Swiss won 6-4 6-4 in 68 minutes to set up a meeting with unseeded Dutchman Robin Haase.
Federer is aiming for the third Rogers Cup win of his career and sixth title of a remarkable 2017 season.
Canada's Denis Shapovalov plays Alexander Zverev of Germany in the other semi-final.
Federer secured the decisive first break at 4-4 in the opening set, then got the better of three consecutive breaks early in the second.
The 19-time Grand Slam champion has now won all 16 sets in his seven matches against Bautista Agut.
"I think it pays off playing aggressive here in Montreal," said Federer.
"Plus I feel comfortable at the net so why not spend some time up there instead of slugging it out from the baseline?"
With world number two Rafael Nadal eliminated on Thursday by Shapovalov and world number one Andy Murray sidelined by a hip injury, Federer has an opportunity to regain his world number one ranking.
He would need to win in Montreal and have an equal or better finish than Nadal in Cincinnati next week to become the world number one on 21 August.
"Now that Rafa is out I know I can make big strides, especially if I was to go further than the semis here. But it's all connected to great play," said Federer.
Haase, ranked 52nd in the world, fought back to beat Argentina's Diego Schwartzman 4-6 6-3 6-3.
Rising stars face off
Fourth seeded Alexander Zverev defeated South Africa's Kevin Anderson 7-5 6-4 to set up a match of rising stars with Shapovalov.
Zverev, 20, is the youngest player ranked in the top 20 in the world and Shapovalov, 18, is the youngest to reach a Masters 1000 semi-final.
The Canadian, who needed a wild card to gain entry into the tournament, beat Frenchman Adrian Mannarino 2-6 6-3 6-4.
"I've been against the wall a couple times this week. I'm very happy I've come out several times just playing really good tennis in those situations," Shapovalov said. "I think it really shows how I've improved mentally along with just finding my game at the right moments."
Shapovalov beat 10-time French Open champion Nadal to reach the quarter-finals and upset 2009 US Open winner Juan Martin del Potro in the second round.