Djokovic, 31, will be playing in his 32nd Slam semi-final where he will face either world number one Rafael Nadal or fifth-seeded Juan Martin del Potro.
It will be Djokovic's first semi-final at a major since the 2016 French Open when he completed the career Grand Slam.
The 12-time major winner prevailed despite picking up two code violations and accusing umpire Carlos Ramos of ‘double standards’.
‘I think the first warning was unnecessary,’ said Djokovic, who was sanctioned in the second set for spearing his racquet into the court.
‘It didn't harm the grass. Kei did the same in the fourth set but wasn't warned.
‘The umpire said he didn't see. I don't think it's fair but it is what it is.’
Despite his anger, Djokovic still reeled off 10 of the last 12 games of the quarter-final.
‘It feels great to be back in the last four of a Slam. I've been building in the last couple of weeks and my level of tennis is going up,’ he said.
‘I am peaking at the right moment.’
After racing through the first set, Djokovic was handed his first code violation for unsportsmanlike conduct after bouncing his racquet into the grass in frustration at squandering three break points in the third game of the second set.
‘Do you think I ruined the court?’ he bellowed at Ramos.
The 2011, 2014 and 2015 champion was clearly unsettled by the dispute, quickly surrendering the set.
Djokovic saved three break points in the fifth game of the third and made the Japanese star pay by breaking for 4-2 and an eventual two sets to one lead.
Nishikori, who had won only two matches in 15 meetings with the 12-time major winner, broke for 1-0 in the fourth but was broken straight back.
Djokovic's mood was not improved by Ramos choosing not to punish Nishikori for imitating his earlier offence of bashing a racquet into the ground.
‘Double standards, my friend,’ screamed the former world number one.
Ramos then hit Djokovic with a time violation warning for taking too long to serve in the seventh game of the fourth set.
But the 12th seed was not to be denied as he raced into the last four, hitting an impressive 40 winners on the way.
Nishikori, playing in his first quarter-final at the All England Club, was bidding to become the first Japanese man to make the Wimbledon semi-finals in 85 years.
Want stories like this in your inbox?
Sign up to exclusive daily email
More Stories from Tennis