The 31-year-old Serb saved a set point against Anderson in an intense opener, before taking control in the tiebreak.
Djokovic will play top seed and defending champion Roger Federer or Croatia's Borna Coric in Sunday's final. Nishikori capitalised on short balls early in the tie-break, but Federer won six straight points for a memorable win.
The first set went with serve, and some big serves at that, until Djokovic grabbed the break to go 4-2 up.
The final will be played on Sunday at 10:30 am. Novak to me right now looks like the best player on the planet and looks like the guy who is dominating men's tennis.
The second seed is desperate to grab injured Rafael Nadal's year-end number one ranking. "But I will play tennis next year, yes", he said.
Djokovic said that he was relishing facing "top player" Zverev after the 14-time Grand Slam champion beat Kevin Anderson 7-6 (7/1), 6-3.
Viktoria Marinova: Arrest in Germany for rape and murder of Bulgarian journalist
Ms Marinova , 30, was a director of a small local TV station called TVN , and a TV presenter of two investigative programmes. Mr Biro said he had never met Ms Marinova, but one of her colleagues had interviewed him and Mr Stoyanov about their work.
The young Zagreb native broke Federer in the opening game and managed to secure the first set in 34 minutes.
Djokovic held the advantage to seal the victory and set up a semi-final clash with Germany's Alexander Zverev, who became the fifth singles player to qualify for November's ATP Finals with a 6-4 6-4 win over Kyle Edmund.
The 37-year-old Federer was forced to battle through the first two matches of his title defence, first to Daniil Medvedev and then Roberto Bautista Agut.
The 21-year-old world No. 5 Zverev, who was seeded fourth, conceded the first break with a wide forehand in the sixth game as Djokovic rallied to a 5-2 lead before breaking the German again to take the first set.
"I thought I was very solid and always made him play an extra shot from the back of the court and I tried to be as convenient, accurate, and efficient on my service games as possible", Djokovic told Sky Sports, after recording his 17th ATP match-win in a row. "I was telling myself, particularly tonight I can not do this (lose) because they were there, but I don't know how much I draw from that, quite honestly". "I think it's going to be tough".