Milan led in the first half thanks to Krzysztof Piatek's 21st Serie A goal of the season, with Juve struggling to create openings against the Rossoneri in the absence of injured superstar Cristiano Ronaldo.
But Paulo Dybala's penalty got Massimiliano Allegri's side back on level terms at Allianz Stadium and, with six minutes to go, teenager Kean fired home to score for the fifth consecutive game for club and country.
Piatek missed a great chance with just 63 seconds on the clock, Suso's deep right-wing cross headed wide by the striker at the back post.
The leaders survived strong penalty appeals when Alex Sandro blocked Calhanoglu's cross with his arm, but referee Michael Fabbri only gave a corner after checking with VAR.
There was no let-off for Juve in the 39th minute, though, Piatek drilling home after Tiemoue Bakayoko robbed Rodrigo Bentancur and poked the ball through for the striker to score.
Mario Mandzukic's overhead kick was brilliantly tipped over the crossbar by Pepe Reina and Piatek forced a smart save from Wojciech Szczesny with a curling 25-yard drive.
Juve were gifted a golden chance to level, however, with Dybala clumsily brought down by Mateo Musacchio in the box, and the attacker beat Reina from 12 yards.
Kean blasted over the crossbar and Sami Khedira, making his return from a heart problem after replacing the injured Emre Can, directed a headed chance off target.
Alex Sandro and Federico Bernardeschi wasted further chances but Kean would not be denied in the 84th minute.
The 19-year-old was fed by fellow substitute Miralem Pjanic and drilled an unstoppable finish across Reina to give Juventus a potential party ahead of a midweek trip to Ajax in the Champions League, although they needed Szczesny to keep out Calhanoglu's late strike.
What does it mean? Champagne on ice for Juve
Juve left key players including Giorgio Chiellini, Pjanic and Kean on the bench and as a result lacked their usual fluency and swagger, with Milan's intensity not matched by the league leaders.
But Juve showed the mark of champions with a superb comeback after the interval. Pjanic and Kean both provided a decisive impact off the bench and Massimiliano Allegri's decision to rotate ahead of a trip to paid off in the end.
Kean has the final say
The script seemed written for Kean to come on as a substitute to score the winner at the end of a week that has seen the teenager in the headlines after Juve's defeat of Cagliari last time out.
Team-mate Leonardo Bonucci was roundly criticised for the way he responded to the situation but Kean showed a maturity that belies his young age to come up with another crucial goal.
Bonucci and Bentancur switch off
Milan's goal owed plenty to Bakayoko spotting his chance to seize on a loose ball, but both Bonucci and Bentancur were at fault for opening the door to the midfielder.
It was Bonucci's under-hit pass that put Bentancur into trouble but the Uruguay international did not seem to sense the danger of Bakayoko's presence, with Piatek then punishing the errors.
Bonucci should be grateful to Kean for ensuring his mistake did not prove too costly.
Key Opta Facts
- Juventus have earned 84 points so far: the most for a team in the history of Serie A after 31 games played (considering three points per win).
- Kean has the best min/goals ratio (one goal every 47 minutes played) among players with at least two goals scored in the top-flight European Leagues this season.
- AC Milan have conceded at least one goal in each of their last five Serie A games, after they had kept the clean sheet in five of their previous seven.
- Piatek has scored his 10th goal for AC Milan (in 13 games played), more than any other Rossoneri player current season (all competitions).
- Milan have lost two consecutive away games in Serie A for the first time since October 2017 (3).
Juventus will hope to have Ronaldo available for the first leg of their Champions League quarter-final, away to Ajax on Wednesday, before returning to domestic duty three days later at SPAL. Milan are at home to top-four rivals Lazio on Saturday.