Top-ranked Novak Djokovic staved off a potential shock Friday as he held off the challenge of world No. 110 Mischa Zverev to reach the semifinals of the Shanghai Masters.