A 97th-minute penalty from Franck Kessie rescued a point for title challenging AC Milan against Udinese at the San Siro on Wednesday.
The Rossoneri had controlled possession but in the absence of the injured Zlatan Ibrahimovic, Stefano Pioli's side - fresh from a huge 2-1 victory at Roma on Sunday - struggled to break down a resilient Udinese defence.
Milan were staring down the barrel of a devastating defeat thanks to Rodrigo Becao's tame header which somehow squeezed past goalkeeper Gianluigi Donnarumma until a moment of madness from substitute Jens Stryger Larsen presented the hosts with a golden opportunity to salvage a point.
Gazidis to begin treatment for throat cancer
Kessie stepped up and confidently stroked home from the spot to spare Milan's blushes and keep his side in the title race.
Samu Castillejo had fashioned the home side's best chance in the opening 45 minutes but saw his effort saved by the feet of Juan Musso.
Udinese offered very little in the way of attacking threat but Milan had Alessio Romagnoli to thank for keeping the scores level after the restart, with the defender hacking Ilija Nestorovski's goal-bound header off the line.
Musso was alert to deny substitute Soualiho Meite from distance and then Kessie, as Milan's frustration continued to build.
The hosts were then stunned as Udinese took the lead in the 68th-minute when Becao's tame header found its way through a crowd of players and past Donnarumma.
The Friulians looked set to record an impressive away victory until Larsen clumsily handled inside his penalty area and Kessie equalised.
The draw leaves Milan in second and three points behind leaders Inter having played a game more. Antonio Conte's side will move six points clear if they defeat Parma on Thursday night.
TALKING POINT - How important could this point be to Milan?
It is far from the ideal result for Pioli's title-chasing side, but considering the mess they were faced with Milan will be relieved to have come away with the draw.
The Rossoneri cannot build any momentum at the moment. After their huge result in the capital at the weekend, Pioli's side came unstuck against a stubborn Udinese outfit. There is no question the services of Ibrahimovic were sorely missed. Tasked with spearheading the Milan attack, Rafael Leao struggled as his goal drought continued. But with Ibra set to miss up to four games, Milan need to find a way to cope without their talisman.
MAN OF THE MATCH - Rodrigo De Paul (Udinese)
Underlined his importance to Udinese with another big-game performance in midfield, capped by registering the assist for his side's goal.
Milan: Donnarumma 5, Kalulu 6, Kjaer 6, Romagnoli 7, Theo Hernandez 7, Tonali 6, Kessie 7, Castillejo 6, Diaz 6, Rebic 6, Leao 5.. subs: Saelemaekers 5, Hauge 5, Calabria 5, Meite 6.
Udinese: Musso 7, Becao 7, Bonifazi 6, Nuytinck 7, Molina 7, De Paul 8, Arslan 7, Makengo 5, Zeegelaar 6, Pereyra 6, Nestorovski 6.. subs: Larsen 4, Samir N/A, Walace 5, Llorente 5.
68' - GOAL! AC Milan 0-1 Udinese (Becao): Udinese lead! What a blow for Milan! It comes from a corner, whipped in by De Paul, Becao's header goes through everyone, somehow squeezing past Donnarumma and ends up in the back of the net!
90'+6 - Penalty to Milan! What is Larsen doing?! In an attempt to clear Rebic's cross, he mistimes his jump, handles the ball and Milan are awarded a spot-kick!
90'+7 - GOAL! AC Milan 1-1 Udinese (Franck Kessie, pen): Kessie makes no mistake, stroking the spot-kick past Udinese and rescuing a point for Milan with the last kick of the game!
- Franck Kessie scored the latest goal by ACMilan in Serie A since April 2017, (Cristian Zapata against Inter (96:39)
- Rodrigo Becao has scored two goals in Serie A, both against AC Milan and Gianluigi Donnarumma.
AC Milan confirm signing of Chelsea striker Giroud
Giroud says his Chelsea goodbyes ahead of AC Milan switch