The world number one’s hopes of a ninth title in Melbourne Park have hung firmly in the balance since he sustained an abdominal injury during his third-round win against Taylor Fritz.
After somehow winning a fifth set in that one, he struggled to a four-set victory over Milos Raonic in round four and he was forced to dig deep into his well of competitive fire to pull out a 6-7 (6) 6-2 6-4 7-6 (6) success against Zverev.
Djokovic admitted after beating Raonic that trying to play through the injury was a big gamble but he appeared more comfortable off the ground here after a shaky start.
“With this kind of condition, I need time to warm up,” said Djokovic in his on-court interview. “Even though I had almost an hour prior to the match I still felt it was going to take me some time to warm up, to feel that I can rotate well.
“I was lucky to get that break in the 10th game. It was a close tie-break. After that I felt I started moving better, playing better. I served extremely well. Down to the very last shot it was anybody’s match.
“A lot of nerves out there, a lot of pressure. Emotionally I feel a little bit drained. It was a great battle. We pushed each other to the limit.”
He fought back from a break down to push the opening set to a tie-break but it was Zverev, who was also playing with tape on his stomach, that came out on top.
This was a much more physical contest than the one against Raonic and it seemed a major blow to Djokovic’s hopes but the top seed responded like a champion by opening up a 4-0 lead in the second set.
Zverev was back on top in the early stages of the third and Djokovic destroyed his racket in a fit of anger after missing a break point to get back on serve at 1-3.
Zverev’s problems with double faults have been well documented over the past couple of years but he had not served any until an untimely pair in his next service game brought Djokovic back level. And the Serbian seized his chance, making it five games in a row to win the set.
If that seemed the crucial twist, Zverev had other ideas, playing his best tennis of the match to break at the start of the fourth set, prompting an angry stream of Serbian from his opponent in the direction of his support camp.
But again the fifth seed could not maintain his lead, missing three chances to lead 4-0 and then giving up his break.
This was turning into a match of chances lost for Zverev as Djokovic simply refused to let go of his goal, and the top seed saved a set point to force another tie-break.
Neither man gave an inch until Zverev missed a volley at 6-6 and Djokovic sealed victory with his 23rd ace.
The 33-year-old has never lost once he has reached the semi-finals and he will be a big favourite to make another final when he takes on qualifier Aslan Karatsev.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies