The top seed and 20-time Grand Slam victor emerged from another nervy battle to eventually defeat the 28-ranked Spaniard 6-3, 2-6, 6-4. But even in defeat, both Federer and Zverev have qualified for the season-ending ATP Finals, featuring the world's top eight players on November 11 in London.
Coric, who said he nearly skipped the event because of neck pain, finished off Federer in style with the final two points being an ace and a sizzling forehand crosscourt victor.
Djokovic will meet Zverev on Saturday after the rising star defeated Kyle Edmund to reach his first Shanghai Masters semi-final.
He's is on a 17-match winning streak and is 26-1 in matches played since the start of Wimbledon.
"I think, quite similar in style of play to today's match".
However, Djokovic was gifted a break of serve when Zverev's level dropped alarmingly in the sixth game, and the three-time champion in Shanghai soon wrapped up the opening set in ruthless fashion.
Normal order appeared to have been restored when the 20-time Grand Slam champion comfortably claimed the first set against Bautista Agut.
Zverev has been suffering with a cold but ratcheted up the pressure to grab the all-important break of serve in the ninth game before closing out the match against de Minaur. He banged his racket to the ground, then gave it another swipe before tossing the mangled implement into the crowd.
"I did everything I meant to do on my end", Djokovic said.
Djokovic, who beat South African Kevin Anderson 7-6 6-3 to reach the last four, knows a fourth Shanghai title would help him trim Rafa Nadal's lead at the top of the rankings. He has won all three of his previous finals in Shanghai.
Djokovic played his 1000th career match against Zverev to hold an impressive 827-173 win-loss record.
"I wouldn't be so dedicated to this sport if I didn't believe that I can achieve great heights", Djokovic said.