- Watch the 2020 ATP Adelaide and Australian Open LIVE on Eurosport and the Eurosport Player
- Watch 2020 Australian Open LIVE on Eurosport: All you need to know
It was Djokovic's fifth victory over the 20-year-old Canadian in as many clashes but by far the toughest, after Shapovalov controlled significant portions of the match played in Australia's intense summer heat.
The victory, set up earlier by Serbia's Dusan Lajovic's upset win over Canadian teenager Felix Auger-Aliassime 6-4 6-2, means Serbia will play Russia in the semi-final. That clash will see Djokovic face world number five Daniil Medvedev, a player who has beaten the Serbian at their last two meetings.
Djokovic to face Nadal in Rome final after beating Sonego
Djokovic, ranked second in the world and peerless during his tour of Australia last year, knew he was in a battle early as he fought hard to hold his service games, while the left-handed Shapovalov swung the ball powerfully around the court.
The Canadian, ranked fourteen in the world, was rewarded with a break, and eventually the first set. He looked most likely to break serve again early in the second, while Djokovic was forced to simply hang on.
After more than a set of tennis, it was Shapovalov, and not Djokovic, who looked like a 16-times Grand Slam champion.
Djokovic, however, stayed in the match. He hit an awkward but accurate lob to stave off one break point early in the second set, and against all momentum, broke his opponent's serve.
The vocal Serbian supporters erupted. Shapovalov grew frustrated.
"It felt, not a little bit, fully like I'm playing at home," Djokovic said after the match.
In less time than it would take for a spectator to line up for a drink in the 35 Celsius (95 Fahrenheit) heat, Djokovic had won the second set 6-1.
Shapovalov composed himself for the third, and his prospects of upsetting the tour applecart, long dominated by Djokovic, Rafael Nadal and Roger Federer, improved.
At 185cm (6.1 ft), the young Canadian is around average height for a professional tennis player, but he looked like a giant. He bullied his more fancied opponent, using his single-handed backhand to push Djokovic into the side fencing.
After some late third set drama, where the two exchanged breaks of serve, the match fittingly entered into a tiebreak.
Shapovalov looked most likely - but the Serbian had a joker up his sleeve he has successfully deployed over the years in tense situations.
He simply refused to miss, daring his younger rival to find a way to hit seven winners and claim the tiebreak.
It was too much for the Canadian, and, after floating a ground stroke long, Djokovic raised his arms in victory.
"The match was so close it could have gone a different way easily," Djokovic said in an on-court interview after the match.
Goffin upsets Nadal
Later on, David Goffin claimed an upset victory over world number one Rafael Nadal to keep Belgium alive in their quarter-final clash at the inaugural ATP Cup team event.
Goffin, ranked 11 in the world, proved to be one of the few players who can handle Nadal's heavy spin, which he did with aplomb on both the return of serve and in general baseline play, to claim a 6-4 7-6(3) victory.
The tie will now be decided by a high-stakes doubles match, after Spain claimed the opening singles early in the evening when Roberto Bautista Agut defeated Kimmer Coppejans 6-1 6-4.
The winners of the deciding doubles will play Australia in Saturday's semi-final, while Serbia, led by world number two Novak Djokovic, take on Russia.
Murray set to miss French Open - reports
Djokovic through to Rome semis after exhausting Tsitsipas battle