Despite his victory, he missed out on a place in the weekend's final - with Filip Krajinovic going through instead.
The Serbian came out firing in the first set, but Zverev responded stylishly, winning the second set 4-1.
Australian Open
‘We have to do better’ – Medvedev on the change that made him a ‘genius’
Djokovic had the crowd behind him at the Belgrade tennis centre which bears his name, and in the third set he consolidated his ground strokes and served out the match.

'Devilish' - Djokovic unfurls gorgeous drop shot winner

Krajinovic, who beat Djokovic on Saturday, progressed to the final after he grabbed his second win in 24 hours, beating Viktor Troicki 4-0, 4-3 (7-5) - going through on his higher percentage of games won.
Krajinovic stormed into a 4-0 lead in the opening set with Troicki failing to make an impact.
Watch the Adria Tour live on Eurosport
And it looked as though world number 32 Krajinovic would walk the second set, too, after taking a 3-1 lead in the first-to-four format, but Troicki saved two match points in games five and six to force a tie-break.
But Krajinovic went on to win from 4-1 down with a brilliant return of serve on match point.

'What a finish!' - Krajinovic nails return winner to beat Troicki

He will play Dominic Thiem in the final, after the Austria beat Grigor Dimitrov in a close and entertaining encounter, with two tie-break sets - 4-3, 4-3.
Nikola Milojevic saw off compatriot and 23rd seed Dusan Lajovic 4-3 (7-0) in Sunday's opening match. Milojevic, ranked 145th in the world, emerged victorious in the Fast4 contest in a dominant tie-break, taking it without a response from his higher-ranked opponent.
With the match in Milojevic's sights at 3-2 up, Lajovic broke in game six on his second break point to force a tie-break after 30 minutes at the Novak Tennis Centre in Belgrade - where crowds are permitted to attend.
However, Milojevic made light work of the tie break to seal the win at the exhibition tournament.

Djokovic warms up by dancing with DJ and pianist before Adria Tour match

Australian Open
'I've told you before!' - Umpire gives stunned Tsitsipas coaching violation
Australian Open
'This will hit him hard, he worked so hard to be loved' - McEnroe on Djokovic saga