The hosts led 2-1 early in the second period, but an own goal from Mattia Bani saw the scores levelled in the 77th minute, before Bernardeschi netted a winner at the death.
Juventus previously thought that they had snatched the points through Mario Mandzukic, but the attacker's goal was disallowed following a VAR check, which deemed that Cristiano Ronaldo - making his Juventus debut - had handled.
The Italian champions needed just three minutes to make the breakthrough, with Sami Khedira smashing home from inside the Chievo box after a wide free kick from Miralem Pjanic had caused all sorts of issues.
The Italian champions had a golden chance to double their lead in the ninth minute when Douglas Costa picked out Joao Cancelo with an excellent cross, but the right-back somehow missed the target when it appeared easier to score.
Chievo's first attempt of the match arrived in the 15th minute when Ivan Radovanovic struck one from distance, and the midfielder's effort was not too far away from the Juventus goal.
Ronaldo then struck just wide of the Chievo post following smart work from Juan Cuadrado in a wide position, before the Portuguese fired over the crossbar in the 30th minute as he came close to a debut goal once again.
Juventus were completely and utterly dominant, and Costa just missed the top corner with a half-volley 10 minutes before the break, with Chievo seeing hardly any of the ball.
The home side incredibly levelled the scores in the 38th minute, however, when Mariusz Stepinski rose highest inside the Juventus box to head an excellent Emanuele Giaccherini cross into the back of the net.
Juventus had close to 80% of the ball in the first 45 minutes of football, but the two teams headed down the tunnel at 1-1 as the visitors were punished for some wastefulness in the final third of the field.
The second half started in a similar fashion, but Chievo took a shock lead in the 56th minute when Giaccherini found the bottom corner from the penalty spot after being brought to the ground by Cancelo inside the box.
Bernardeschi tested the reactions of Sorrentino in the period that followed as Juventus looked for a leveller, before Ronaldo headed into the arms of the home side's goalkeeper just before the hour.
Mandzukic followed Bernardeschi off the Juventus bench, and the away team were firmly on the front foot, with Ronaldo bringing a super stop from Sorrentino in the 66th minute as the pressure continued.
Ronaldo came close once again in the 69th minute - seeing his close-range effort deflected over the crossbar, before Mandzukic headed a cross from the number seven wide of the post two minutes later.
Juventus were level in the 75th minute, however, when Bani turned a Bernardeschi corner into the back of his own net from close range under pressure from Leonardo Bonucci, who was keen to claim it.
Sorrentino made another excellent save to keep out a Ronaldo free kick 13 minutes from time, before denying Emre Can with his first touch of the match.
Juventus looked to have completed the turnaround late on when Manduzkic's header crossed the line, but the referee consulted VAR, and eventually it was disallowed for a Ronaldo handball.
The visitors had their goal in the 93rd minute, however, with Bernardeschi turning a low Alex Sandro cross into the back of the net to secure all the points for the champions in incredible fashion.
CHIEVO (4-3-3): Sorrentino (Seculin 91'); Tomovic, Rossettini, Bani, Cacciatore; Hetemaj (Obi 78'), Radovanovic, Rigoni; Giaccherini, Stepinski (Djordjevic 67'), Depaoli
JUVENTUS (4-2-3-1): Szczesny; Cancelo, Bonucci, Chiellini, Sandro; Khedira (Can 84'), Pjanic; Cuadrado (Bernardeschi 57'), Dybala, Costa (Mandzukic 64'); Ronaldo