Krzysztof Piatek had put Milan in front, but Paulo Dybala’s penalty and yet another goal from Moise Kean completed the Juventus comeback.
If Napoli lose to Genoa tomorrow, then the Bianconeri will mathematically earn their eighth consecutive Scudetto.
Both sides reshuffled in Turin, as Cristiano Ronaldo, Martin Caceres, Andrea Barzagli, Douglas Costa, Juan Cuadrado and Mattia Perin were injured, but Paulo Dybala, Mario Mandzukic, Leonardo Spinazzola and Mattia De Sciglio returned for a 3-5-2 formation. Miralem Pjanic, Giorgio Chiellini and Joao Cancelo were rested. The Rossoneri had to do without Lucas Paqueta and Gianluigi Donnarumma, so Pepe Reina got his first Serie A start in a Milan jersey, with Fabio Borini a surprise pick to complete the trident attack. Franck Kessie returned after a knee inflammation.
Milan have a famously awful record in Turin, losing their last eight Serie A visits on the bounce. Incredibly, the most recent victory was 1-0 in March 2011, decided by a Gattuso goal with Max Allegri on the Milan bench.
There was a big chance within 90 seconds, as Suso went on the counter and floated in a cross for Krzysztof Piatek to nod wide at the far post.
Emre Can twice twisted his right ankle and decided not to risk it, so limped off for Sami Khedira’s first appearance since the heart surgery just over a month ago. Juve moved to a more classic 4-4-2 formation.
Kessie scuffed a shot wide and Milan had penalty appeals viewed on VAR for an Alex Sandro handball, but the referee decided he was sliding in and turning away from Hakan Calhanoglu’s cross, so considered it involuntary.
Moments later, Milan took the lead anyway from open play. Former Rossoneri captain Leonardo Bonucci’s attempted pass out from the back was well intercepted by Tiemoue Bakayoko, so Piatek picked his spot and placed a right-foot finish past his fellow Poland international Wojciech Szczesny.
Juve fought back with an acrobatic Mandzukic volley that Pepe Reina equally impressively fingertipped out from under the crossbar just before half-time.
Szczesny had to get down and palm a well-taken Piatek long-range strike out of the near bottom corner, while Fabio Borini’s angled drive was deflected past the far post.
However, Mateo Musacchio went into a clumsy mistimed tackle on Dybala, one he really didn’t even need to make, and Juventus received a penalty. Dybala converted it himself to equalise.
Borini hit the side-netting and Calhanoglu’s free kick skimmed the upright, but Musacchio charged down the Rodrigo Bentancur shot from six yards after a Mandzukic knockdown.
Piatek went on-on-one with Daniele Rugani and won that battle, but hesitated and ran out of room to take the finish. On a Juve corner, Kean fired over under pressure from close range, but Alex Sandro turned a free header wide from a corner.
Bernardeschi cut inside and his shot flew just over the bar, until the pressure finally paid off. Pjanic intercepted a wayward Davide Calabria pass and threaded through for Kean, who took a touch before rifling the angled drive into the far bottom corner from 12 yards. It was yet another goal for the 19-year-old talent, who has been on simply spectacular form for club and country.
See the latest Serie A predictions and betting tips with Eurotips.co.uk