Novak Djokovic defeated Roger Federer on Saturday in a Paris Masters semi-final that he described as "one of the best matches" between the long-time rivals to extend his winning run to 22 outings.
The Serb, who will replace Rafael Nadal as world number one on Monday, outlasted Federer in just over three hours to prevail 7-6 (8/6), 5-7, 7-6 (7/3).
He will meet Russia's Karen Khachanov in Sunday's final as he looks to pull level with Nadal on 33 career Masters titles.
Djokovic has won his last four meetings with Federer and now leads the Swiss 25-22 overall, having not lost to the 20-time Grand Slam champion since 2015.
"We had epic matches throughout our rivalry but this one definitely ranks as one of the best matches we played," said Djokovic, who is aiming to clinch a fourth title in a row after wins at Cincinnati, the US Open and Shanghai.
"High quality tennis. Next to the match I played against Nadal in the semis of Wimbledon, this was definitely the most exciting match I was playing this year, and probably the best quality tennis match that I was part of.
"When I get to play Roger, I know I have to get the best out of myself in order to win. And that's why our rivalries and matches are so special."
Djokovic will go in search of a fifth Paris trophy after denying Federer a shot at a historic 100th title, although the Wimbledon and US Open champion was pushed all the way by his 37-year-old rival.
Djokovic watched four break points, one of which Federer saved with a magnificent reflex volley, go by as he led 4-3 in the opening set, before saving a set point on his serve in the tie-break.
A Federer backhand drifted wide to hand Djokovic the lead, although two more break points passed the Serb by in the first game of the second set with the Swiss on the ropes.
The missed opportunity proved costly when Federer conjured up just a second break point of the contest at 6-5, converting in style as he gambled on Djokovic going cross-court before batting a winner down the line to force a decider.
Federer fended off two more break points to open the third set as Djokovic hit the deck when his ankle appeared to catch in the surface.
The Serb threw his racket down in frustration as Federer again escaped from 15-40 down to move 5-4 ahead, but the Swiss star's magic fizzled out as the final set headed to a tie-break.
'Novak on a roll'
Djokovic rattled off six successive points to bring up five match points, clinching victory at the third attempt when Federer picked out the net to end a tense concluding rally.
"Novak is obviously on a roll. You can feel it. At the end it came down to a few things here and there," said Federer.
"But overall I'm happy with my game. It's better than last week in Basel. There I won the tournament and here I played in the semis and it needed somebody of Novak's calibre to beat me.
"So that's all right. And I'm looking forward to a rest now and a good preparation for London (ATP Finals)."
Earlier, the 22-year-old Khachanov advanced to his first Masters final after beating Austrian sixth seed Dominic Thiem 6-4, 6-1.
"I'm really happy to achieve this, to make it to the finals. But the tournament is not over. I mean, I'm looking forward to play finals tomorrow," said the 18th-ranked Russian.
The 1.98m Khachanov dominated from the baseline and attacked the Thiem service, breaking the Austrian in his final five service games of the match.
Khachanov has won two ATP World Tour titles in 2018 with triumphs in Marseille and at the Kremlin Cup.
"I am very happy with the way I have been playing," said the Russian who is assured of climbing at least to 12th in the ATP rankings when they are published on Monday.