The Serbian top seed had looked in all kinds of trouble against the inspired 20-year-old after being outplayed for two sets but stormed back to win 5-7 2-6 6-3 6-2 6-2.
In the end there was an air of inevitability about the outcome as the battle-hardened 35-year-old seized control to reach his 43rd Grand Slam semi-final and 11th at Wimbledon.
He also extended an unbeaten run at Wimbledon that goes back to 2017 and now stands at 26 matches. Djokovic has not added to his 20 major titles this year after being deported before the Australian Open following a COVID-19 standoff and then losing to old adversary Rafa Nadal in the quarter-finals of the French Open.
He might even be barred from the U.S. Open over his decision to shun a COVID vaccine but kept alive the prospect of facing Spaniard Nadal in Sunday's Wimbledon final with a seventh career comeback from two sets down.