The Japanese, who came unstuck in his only previous meeting with the German in Washington last year, recovered from a disappointing opening set to seal a first Masters 1000 final since Toronto in 2016.
The pair last met on the red dirt at the Barcelona Open in 2016 where the Spaniard emerged in straight sets, but Nishikori will take solace from his efforts in the final of the Mutua Madrid Open against Nadal two years earlier.
The Japanese came out firing, sealing the first set 6-2 before his injury woes surfaced in the deciding set and he was forced to retire.
Nadal has won each of his four matches this week in straight sets whereas Nishikori has been forced to go the distance in all but one of his encounters and the 28-year-old knows he will have to produce the performance of his life if he is to dethrone the Spaniard.
“He’s been dominating crazy this week,” he said after dismissing Zverev in the second semifinal. “On clay, he is the king.”
He was staring down the barrel of a semifinal disappointment was Nishikori as Zverev sealed the first set in 37 minutes.
The Japanese was struggling to settle into a rhythm, often coming out second best in the all-important backhand exchanges, with the German grabbing the decisive break in the seventh game.
Nishikori was perhaps unfortunate that his forehand on break point clipped the top of the net but Zverev had done well to prolong the rally.
The 21-year-old struck as the Japanese served to stay in the set after a grueling backhand rally and he moved to within a set of consecutive Masters final appearances.
Nishikori broke to open the second set but his concentration wavered three games later, double-faulting on the first of three break points for Zverev as the German broke convincingly to love.
However, Zverev managed to follow suit not long after as he found himself in a 0-40 conundrum. His backhand slice from the forecourt sailed long and Nishikori showed enough mettle to level the match after an hour and 18 minutes.
Break points were squandered by both players to open the deciding set before love holds were traded for 3-3.
Zverev then fashioned an opening but Nishikori closed the door with a confident volley. The German held for 4-4 in a service game that lasted just short of ten minutes and he began to feel the scoreboard pressure when the Japanese held for a 5-4 advantage.
He recovered impeccably from a 0-30 hole but Nishikori prevailed in a taxing deuce rally to set up match point. He needed no second invitation to seal his progression to the final, sending a forehand return deep that Zverev could only steer wide of the doubles line.