Strike pair Fernando Llorente and Carlos Tevez each netted for Antonio Conte's side, but the delight on the away bench at the final whistle was also tinged with relief.
Clarence Seedorf's side dominated the first half and were desperately unlucky to go into the break a goal down when Llorente tapped in Stephan Lichsteiner's cross.
The home side faded in the second period, with Adel Taarabt in particular running out of steam in the Milan midfield after a bright first half.
Tevez then wrapped up the game with a fine strike from 30 yards as the Milan defence stood off the Argentina striker.
In the day's other games, third-placed Napoli dropped two more points in a 1-1 draw at relegation-threatened Livorno while Fiorentina, who are fourth, lost 1-0 at home to Lazio.
Juventus lead with 69 points from 26 games while Roma, who have played a game less, have 58 after their goalless draw at home to Inter Milan on Saturday. Napoli are a further six points behind.
At the San Siro, Juventus could have taken the lead in the 17th minute even though Llorente seemed to have wasted the initial chance by air-kicking Tevez’s low cross from the left.
The ball rolled on for the onrushing Lichtsteiner, but Milan goalkeeper Christian Abbiati was able to keep out the Swiss international’s shot with an instinctive save with his legs.
Milan then started to dominate, with Taarabt outstanding in the free role.
Milan’s best chance of the half came on 26 minutes. Kaka saw his first shot saved by Gianluigi Buffon in the Juve goal, then Leonardo Bonucci somehow cleared the second effort off the line.
Buffon denied Kaka again on 44 minutes but was a relieved man when Andrea Poli blazed over the rebound from close range.
La Vecchia Signora took the lead totally against the run of play moments later.
Adil Rami misjudged a speculative ball forward allowing Claudio Marchisio the chance to run into the space behind the Milan back four.
Tevez then put a pass in the six-yard box which allowed Lichsteiner to cut the ball back for Llorente to sidefoot home the opener.
Juventus were far brighter in the second half, and Abbiati needed to make a low save to his left from Tevez on 47 minutes, after the Juventus striker had outmuscled Rami as the pair competed for a long Andrea Pirlo pass.
Tevez made it two midway through the second half with stunning strike from distance. The Milan defence left the former Manchester City striker alone and he took advantage of space by blasting an effort past Abbiati.
Pirlo almost made it three with 82 minutes on the clock with a floated free-kick that clipped the top of the crossbar, with Abbiati well beaten.
Juventus' Pogba also went close with a late effort that clipped the outside of the far post while Milan substitute Robinho wasted an opportunity to net a consolation in injury-time when he blazed over from close-range.
MAN OF THE MATCH
Carlos Tevez, Juventus - The Argentina striker’s partnership with Llorente is really starting to fire, and he was a constant threat up front. His long-distance strike was superb, but equally impressive was the one-touch wall pass that allowed Lichsteiner the chance to cross for Llorente to score the first goal.
Tevez is unlikely to make the Argentina squad for the World Cup this summer - it will be a poorer tournament in Brazil for his absence.
AC Milan: Abbiati 7; Abate 7, Rami 6, Bonera 7, Emanuelson 7; Montolivo 7, De Jong 6; Kaka 6, Poli 5, Taarabt 7; Pazzini 5. Subs: Robinho 6, Saponara 6, Honda 6.
Juventus: Buffon 7; Barzagli 7, Bonucci 5, Caceres 7; Lichtsteiner 7, Pogba 7, Pirlo 7, Marchisio 7, Asamoah 7; Tevez 8, Llorente 7. Subs: Padoin 6, Osvaldo 6, Giovinco 6.
- Sports & Recreation
- Carlos Tevez
- AC Milan
- Fernando Llorente
- Inter Milan
- Adel Taarabt