"We went toe to toe until the last shot, it was one of the best matches I have played in this year and one of the matches we have played against each other", Djokovic said.
Earlier, the 22-year-old Khachanov advanced to his first Masters final after beating Austrian sixth seed Dominic Thiem 6-4, 6-1.
Khachanov, the victor at last month's Kremlin Cup in Moscow, demolished out-of-sorts fourth seed Alexander Zverev of Germany 6-1, 6-2 while Thiem knocked out defending champion Jack Sock, the 16th-seeded American, 4-6, 6-4, 6-4.
Federer faced two break points in the opening game of the second set as Djokovic threatened to take control, but matters stayed on serve until a few minutes of uncharacteristic sloppiness from the Serb gave Federer a chance to level, which he took with a fizzing forehand victor.
Earlier, Khachanov showed why he's one of the finest young talents in tennis with a thunderous victory over Thiem.More news: China Exports Its Restrictive Internet Policies to some Countries
It will be the 47th meeting between the pair with Djokovic, who has won their last three meetings, leading their head-to-head record 24-22. But he faces arguably the toughest of tests with Djokovic looking like the man who held all four Slams at the same time in the summer of 2016.
Djokovic overcame a formidable examination from Marin Cilic, having to come from a set down to forge into the Paris Masters semi-finals with racket-smashing intensity and extend his winning streak to 21 matches on Friday.
This time he went right to left with a forehand volley that infuriated Nishikori, who shaped to belt the ball down the court as a ball boy went to catch it, and two points later Federer had secured the set.
Djokovic, who had complained of flu-like symptoms this week, was proud and relieved to repel a wonderful challenge from Federer. I was a break down in the third set.
Having saved an eighth break point of the contest to lead 6-5, Federer forced a window at 15-40 and took it to let out a roar and level the contest which was already into its third hour.More news: Tottenham boss Pochettino hails 2-goal Son after Cup triumph
But, with nothing separating the two in the second, Federer finally broke Djokovic to win the set and restore parity - the first service break of the match.
After the victory, Djokovic pointed to his ear as a cheeky gesture to the outwardly pro-Federer crowd.
As the match entered its fourth hour, Djokovic brought up five match points, Federer saved the first two on his own serve but fired into the net to give his opponent a place in Sunday's final.
"Bercy (Paris Masters) as for next year, it's like every year, it's always hard".More news: Lion Air crash mystery search in MAJOR BREAKTHROUGH as black box recovered