The world No.1 first appeared in the decider of the ATP Masters 1000 event in Canada in 2005, when he beat Andre Agassi in the twilight of the American great's career.
Victories over Nicolas Kiefer and Milos Raonic followed in 2008 and 2013 respectively, and the 32-year-old will now take on Stefanos Tsitsipas.
The Greek outsider will be targeting one more big scalp, having accounted for Wimbledon finalist Kevin Anderson in the last four, defending champion Alexander Zverev in the quarters, as well as Novak Djokovic and Dominic Thiem earlier in the tournament.
Tsitsipas and Nadal have only met once before, the 17-time grand slam winner beating the 19-year-old 6-2 6-1 on clay on his way to the title in Barcelona in April.
A lengthy delay to the start of the match caused by rain in Toronto may have affected both players early in the contest, as Nadal fought hard to hold in the opening game, before the two men traded breaks.
It then remained on serve until the tie-break, when an uncharacteristic misjudgment from Nadal saw the Spaniard send a routine forehand long and give up a mini-break.
It was Khachanov who made the more costly unforced errors, though, the Russian's forehand letting him down as he gave up four mini breaks, Nadal taking the opener with his second set point by running around a looping, high rally ball and crushing it down the line with a trademark top-spin forehand winner.
There was no stopping Nadal in the second set, as the unseeded Khachanov, ranked 38th in the world, gave up a crucial break in the third game.
Nadal did not offer his opponent so much as a single break-point opportunity, coming to the net and putting away a volley into open court to bring up three match points.
He won it on the first, charging off the baseline again to smash Khachanov's lofted return attempt down into the court and over the Russian's head, holding to love and sealing his place in the decider.