The world number 11, who becomes the first Asian man to reach the final of major, ousted the number one seed in four sets to set up a final against either Marin Cilic or Roger Federer at Flushing Meadows.
Nishikori made an early break of serve in just the third game of the match, but he failed to consolidate it as Djokovic immediately broke back to level the scores.
A second break in the seventh game saw Nishikori take control of the encounter once more, and this time he was able to hold on to take the first set 6-4.
Djokovic responded in style as he went in search of his fifth consecutive US Open final, breaking Nishikori twice in the next set to take it 6-1.
The Serb continued his pressure in the opening exchanges in the third set, but Nishikori was able to survive four break points in a mammoth third game to hold serve.
The Japanese number 10 seed got the first break of the set, but once again Djokovic hit straight back to eventually force a tie-break.
Just three of the points went with serve in the tie-break as Nishikori edged to a 7-4 victory to move into a 2-1 lead overall.
The underdog made a perfect start to the fourth set too, breaking Djokovic in the very first game to leave a place in the final in his own hands.
He managed to survive three successive break points in the next game to hold onto his advantage, before breaking again himself in the final game to clinch his historic place in the final.