Udinese heaped more pressure on Milan coach Massimiliano Allegri after they condemned nine-man Milan to their third league defeat of the season in an incident-packed clash at the Stadio Friuli.
Udinese led through Mathias Ranegie’s first half header, but Milan equalised courtesy of Stephan El Shaarawy’s thunderbolt.
But Milan were reduced to ten men when Cristian Zapata was shown his second yellow card for a foul on Ranegie in the box – and Antonio Di Natale despatched the resulting penalty.
There was further controversy when substitute Kevin-Prince Boateng was harshly dismissed for a second bookable offence - completing a miserable day for Milan.
Allegri went into this game not only under the pressure of having lost three of his opening four games, but fresh from a reported training ground spat with Filippo Inzaghi.
And the Rossoneri coach was subjected to more anguish in the early stages here when Giampaolo Pazzini miscued an effort from close-range when he should have scored.
Udinese regrouped and put the visitors under a long spell of pressure that eventually resulted in the first goal. Giampiero Pinzi went close with a volley after Antonio Nocerino only half cleared a corner and Ranegie went clean through after an error by Mexes, but Cristian Zapata got back to sweep up.
But Udinese persevered and were eventually rewarded when Ranegie outjumped Christian Abbiati to nod into the empty net for the opener.
Udinese started the second half strongly but were pegged back ten minutes in when Milan levelled through El Shaarwary’s spectacular strike. Boateng, introduced moments before, created the goal with a driving run and pass to Pazzini, who teed up El Shaarwary to let fly.
But Udinese never panicked and the game’s turning point came in the 67th minute when Ranegie was upended in the box by Zapata, who was shown a second yellow card despite Milan’s protests.
Di Natale sent Abbiati the wrong way from the spot and Udinese had the initiative.
Pazzini could have levelled for Milan when his well-improvised volley was palmed away by Zeliko Brkic. But another wretched day for Milan ended on a sour note when Boateng was harshly dismissed for a second bookable offence after an over-zealous challenge on Roberto Pereyra.
Milan have now lost three of four Serie A matches, after defeats to Atalanta and Sampdoria.