The Serbian took a medical timeout during the first set because of tightness in his left hamstring but was able to continue and did not drop his serve during a 6-3 6-4 victory over one of his biggest rivals.
With just over a week to go until the Australian Open, where Djokovic will chase a 10th title, the 35-year-old will not want to take any chances.
Speaking in an on-court interview, Djokovic, who has not lost a match in Australia since 2018, said: “Thankfully it was nothing too serious. If it was, I wouldn’t be able to continue. I just tried with a medical timeout, some anti-inflammatories and it kind of settled in.
“For a few games I was just trying to keep the momentum going and don’t allow him to break my serve. I think that was the key, that eventually I would get a chance.
“I think the longer the match went, the more my hamstring was warmer and bothering me less. Hopefully for tomorrow it will be all fine.”
Providing Djokovic is fit, he will take on Sebastian Korda in the final after the American benefited from the retirement of opponent Yoshihito Nishioka early in the second set because of a hip injury.