Match ends, Milan 1, Juventus 2.
Paul Pogba bundled in a winner as Juventus came from a goal down to extend their Serie A lead to nine points with victory at AC Milan.
Alex headed the home side in front from Mario Balotelli's corner.
Juve soon equalised, though, as Mario Mandzukic stroked a shot into the corner after receiving Alvaro Morata's perfectly-weighted return pass.
Balotelli had a goal ruled out for handball and then Pogba hit the post with a free-kick, before scoring.
The France midfielder chested down Claudio Marchisio's corner at the far post and thumped a shot into the ground, with the ball bouncing across goal and in.
Balotelli, recalled to Milan's starting line-up, had a mixed night, claiming an assist for his side's goal and testing keeper Gianluigi Buffon with a fine first-half free-kick before being booked.
The striker, who was substituted with 13 minutes left, received a yellow card for punching the ball into the net as it dropped loose after Buffon had made a great double save.
Milan's defeat leaves them in sixth place, while Juve's lead will be cut back to six points if second-placed Napoli beat bottom club Verona on Sunday.
Elsewhere in Serie A, Mauro Icardi's second-half goal ensured Inter Milan moved up to fourth with a 1-0 victory at next-to-bottom Frosinone, who finished with 10 men after defender Leonardo Blanchard was sent off late on.
Carpi remain outside the relegation zone only on goal difference after losing 1-0 at Chievo, while Genoa won 1-0 at Sassuolo in the day's other game.
- 99G Donnarumma
- 33Dias da CostaBooked at 59mins
- 31AntonelliBooked at 89mins
- 10HondaSubstituted forDe Souza da Silvaat 74'minutes
- 27KuckaBooked at 61mins
- 45BalotelliBooked at 51minsSubstituted forBoatengat 77'minutes
- 2De Sciglio
- 9De Souza da Silva
- 26LichtsteinerSubstituted forJu Cuadradoat 81'minutes
- 22AsamoahBooked at 19minsSubstituted forEvraat 85'minutes
- 12Alex Sandro
- 17MandzukicBooked at 50mins
- 9MorataSubstituted forZazaat 67'minutesBooked at 86mins
- 11de Carvalho Andrade Lima
- 16Ju Cuadrado
- Daniele Orsato
- Shots on Target
Second Half ends, Milan 1, Juventus 2.
Juan Cuadrado (Juventus) wins a free kick in the attacking half.
Foul by Ignazio Abate (Milan).
Foul by Simone Zaza (Juventus).
Luca Antonelli (Milan) wins a free kick in the defensive half.
Attempt missed. Kevin-Prince Boateng (Milan) right footed shot from outside the box is high and wide to the right.
Foul by Mario Mandzukic (Juventus).
Alessio Romagnoli (Milan) wins a free kick in the defensive half.
Luca Antonelli (Milan) is shown the yellow card for a bad foul.
Juan Cuadrado (Juventus) wins a free kick on the right wing.
Foul by Luca Antonelli (Milan).
Foul by Alex Sandro (Juventus).
Juraj Kucka (Milan) wins a free kick on the right wing.
Simone Zaza (Juventus) is shown the yellow card.
Simone Zaza (Juventus).
(Milan) wins a free kick in the defensive half.
Claudio Marchisio (Juventus) wins a free kick on the left wing.
Foul by Ignazio Abate (Milan).
Substitution, Juventus. Patrice Evra replaces Kwadwo Asamoah because of an injury.