Djokovic triumphed 5-7, 2-6, 6-3, 6-2, 6-2 and will face either Britain's Cameron Norrie or David Goffin of Belgium for a place in Sunday's final.
It was the seventh time in the Serb's career that he had recovered from two sets to love at the Slams.
"Huge congrats to Jannik for a big fight, he's so mature for his age, he has plenty of time ahead of him," said Djokovic.
"The first two sets compared to the next three were like two different matches. He was the better player for those first two sets.
"But at the end of the second set I took a toilet break, gave myself a little pep talk, tried to gather my thoughts.
"I broke early in the third set. I saw a little bit of doubt start to come into his movement. I have many years' experience of playing on these courts and coping with the pressure."
Djokovic is bidding to go level with Pete Sampras as a seven-time Wimbledon champion and stand just one off Roger Federer's men's record of eight.
He appeared set for a routine afternoon when he swept into a 4-1 lead in the opener and had a break point for 5-1 against the 20-year-old Italian.
Sinner, the 10th seed, saved it and rallied to move 6-5 ahead, carving out an opportunity to serve for the set.
Djokovic saved a set point but a netted service return gave the Italian the set.
Sinner, relentlessly unleashing winners from all corners of the court, stunned the top seed again with breaks in the third and seventh games on his way to a two-set lead.
However, Djokovic is no stranger to Grand Slam adversity, having twice come back from two sets to love down as recently as last year's French Open.
The second of those stunning recoveries came in the final against Stefanos Tsitsipas.
A break in the fourth game of the third set enabled Djokovic to cut his quarter-final deficit.
In control, the 35-year-old levelled the tie with a double break in the fourth set as Sinner took a worrying tumble on his ankle scrambling to the Centre Court net.
Djokovic carved out two more breaks in the decider, the second off the back of a stunning, cross-court backhand on the stretch to go to 5-2 before calmly serving it out.