Djokovic, 31, is on a 17-match winning streak, a run that includes titles at the US Open and Cincinnati Masters.
Edmund, 23, ranked 14th in the world, took a tight first set, serving an ace to win the tie-break.
The 13th-seeded Coric closed the match out with a clean forehand passing shot to claim his spot in Sunday's final.
"It was one of the best matches I've ever played". With this stunning win, Djokovic has rattled off 38 victories in his last 42 matches and secures himself the world number two position on next Monday as he edges closer than ever to the top spot, now held by Rafael Nadal.
Celebrating his 1 000th match in style, the 14-time Grand Slam victor was clinical as he lined up a potential title showdown on Sunday with reigning champion Roger Federer.
The Swiss player, who managed an easy victory over Agut in the first set, lost his way in the second set after the Spaniard won four straight games to take a 4-1 advantage in the penultimate set. Zverev looked clueless out on the court, and soon faltered away as Djokovic broke serve for the fourth time in the match. The top seed will play Japan's eighth seed Kei Nishikori, while Novak Djokovic and Alexander Zverev are also through, albeit with far less hassle.
Zverev is the fifth player to qualify for the season-ending tournament in London, joining Federer, Rafael Nadal, Novak Djokovic and Juan Martin del Potro in the eight-player field. "It's going to be definitely a close match".
"Obviously, I'm going to try to do everything I can to get to number one", said Djokovic.
"Against that kind of player, you need something to hold on to", he said. I played quite great there.
"It's always easier to get there - but then staying there is always the tougher part".