The Serb world number one beat German Zverev 6-3 7-6 (7-4) at the O2 Arena in London.
Djokovic, seeking a record-equalling sixth title at the end-of-season tournament, was pushed much more in the second set but raised his level at the crucial time in the tie-break.
He will play Dominic Thiem in the last four on Saturday at 14:00 GMT.
US Open champion Thiem progressed as winner of Group London 2020 with Djokovic going through in second position in Group Tokyo 1970.