Gonzalo Higuain missed a penalty and was sent off against his former side Juventus as AC Milan slumped to a home defeat by the Italian champions.
Mario Mandzukic's header put league leaders Juve ahead after eight minutes.
Higuain had the chance to level from the spot but saw his low effort tipped onto the post by Wojciech Szczesny.
Cristiano Ronaldo settled the points nine minutes from time, before Higuain lost control, picking up two quick yellow cards and raging at the referee.
First the Argentina striker was booked for a foul on Juve defender Medhi Benatia, with his second coming moments later for dissent as he shouted in the match official's face.
Higuain, 30, signed for Milan in August in a loan deal that will be made permanent next year, with Leonardo Bonucci moving the other way.
The man who took his place at Juve, £99.2m signing Ronaldo had just minutes before converted a rebound in the box for his eighth league goal in 12 matches since arriving from Real Madrid.
The Turin club, league champions in each of the past seven seasons, are six points clear of Napoli and unbeaten at the top of Serie A, while Milan are fifth, 13 points behind.
Earlier on Sunday, third-placed Inter Milan were beaten 4-1 at Atalanta while Roma climbed up to sixth with a 4-1 victory at home to Sampdoria.