The Serbian will now take on Rafael Nadal in the semi-final in their 51st meeting.
Djokovic, currently ranked 18th following a protracted injury lay-off, had to fight back from a set down against world number 24 Nishikori.
Image credit: Getty Images
The 30-year-old former world number one was broken twice in the first set but stormed back to take the second with ease and send the match to a decider.
However, Nishikori, himself easing back into the game after an injury absence, appeared to tire as the match wore on – a fact Djokovic capitalised on to seal victory in two hours and 23 minutes.
Djokovic praised his opponent after the match, saying:
I just hung in there. It was very close, we went toe to toe all the way until the last point basically. It really could have gone either way. I really gave it my all. It’s tough when you play Kei, who really feels the ball well, conditions like this suit his game and he gets a lot of balls back and plays so quick. He started firing from both sides and it took me some time to get used to it. I enjoyed battling tonight.
Earlier, Nadal defeated Fabio Fognini 4-6 6-1 6-2 in two hours and 16 minutes.
Nadal has led 4-1 in the first but Fognini reeled off the next four games on the bounce to take the first stanza.
However, 16-time Grand Slam winner Nadal rallied to taking the next two sets to progress to the semi-final stage.
"I'm not used to playing so early, but I'm very happy to be in the semi-finals," Nadal said after the match "This was a very important win for me today."
Meanwhile, defending champion Alexander Zverev beat ninth seed David Goffin of Belgium 6-4 3-6 6-3 in the day's final match to remain on course to defend his title after notching up a 12th consecutive victory.
The German, who is the form player on the ATP Tour, will battle Croatian Marin Cilic for a place in the final. Fourth seed Cilic pulled off a regulation 6-3 6-3 victory over Spain's Pablo Carreno Busta earlier in the day.