World number one Rafael Nadal eased past Russia's Karen Khachanov 7-6 (7/3) 6-4 to reach the final of the Rogers Cup in Toronto.
Pursuing his fourth tournament title, the Spaniard saw off his unseeded opponent in one hour and 49 minutes under lights after rain delayed play.
Firing off six aces over the match, Khachanov got off to a resilient start, breaking back after losing his serve in the second game.
He fought back from a break point again in the eighth and the set went all the way to a tiebreak.
Nadal proved to have the edge in that, though, and the 32-year-old finished things off in the second set after breaking in the third game, keeping him on track for a record 33rd title at Masters 1000 level.
Nadal said in quotes reported by the Rogers Cup Twitter account: "I'm happy about everything. Of course, I can play a little bit better. I believe I can do it."
Awaiting Nadal in the final is Greek teenager Stefanos Tsitsipas, who had earlier caused another upset as he battled past Wimbledon finalist Kevin Anderson 6-7 (4/7) 6-4 7-6 (9/7).
Tsitsipas, who turns 20 on Sunday, faced one match point before progressing against the world number six to reach to his first final on the main ATP world tour after almost three hours.
He had beaten world number eight Dominic Thiem in the second round and then dispatched Wimbledon champion Novak Djokovic before beating Alexander Zverev in the quarter-finals.
Nadal added of his final opponent: "He's a complete player. He has passion for the game. He's not just one thing, he's got everything."
Whatever the outcome on his birthday, Tsitsipas is expected to climb into the world's top 15 following his superb run of form.