Pato and Robinho see off Chievo
Second-placed Napoli kept the gap at three points thanks to Juan Zuniga's 25th-minute strike in a nervous 1-0 home win over Catania where Edinson Cavani also missed a penalty.
While Milan coach Massimiliano Allegri was mightily relieved to win on the 25th anniversary of Silvio Berlusconi taking over the club, AS Roma boss Claudio Ranieri was quitting after his faltering side lost 4-3 at Genoa having been 3-0 up.
Sixth-placed Juventus, two points above fellow underachievers Roma, also had another day to forget after losing 2-0 at Lecce where keeper Gianluigi Buffon was sent off early in the game.
Milan's Robinho struck on 25 minutes after dubiously controlling Zlatan Ibrahimovic's knock-down and prodding home but a back-post header from Gelson Fernandes 16 minutes after the break looked to have given the mid-table hosts a draw.
Brazil's Pato had other ideas and after replacing Antonio Cassano, he cut inside from the left, beat two defenders and scuffed in at the near post eight minutes from time.
Milan, wearing special white shirts to mark the occasion of Berlusconi's anniversary, showed the same flaws which undermined them in Tuesday's Champions League last-16 first-leg defeat by Tottenham Hotspur but sheer determination won the day.
"The lads gave a great present to president Berlusconi," Allegri told Sky. "Pato's qualities are huge."
Gennaro Gattuso remained as captain despite his violent altercation with Spurs assistant coach Joe Jordan on Tuesday and this time it was Chievo who lost their heads, Cesar being dismissed for a second booking late on.
Third-placed champions Inter Milan, with the help of another controversial goal from Andrea Ranocchia who looked offside, beat Cagliari 1-0 on Saturday and lie five behind Milan.
Lazio, in fourth, beat bottom side Bari 1-0 thanks to a early Hernanes goal on Sunday while their city rivals Roma were following Wednesday's Champions League loss to Shakhtar Donetsk with another horror show.
Headers from Philippe Mexes and Nicolas Burdisso put them 2-0 up at the break but as soon as Francesco Totti made it three, Genoa hit back through braces from Rodrigo Palacio and Alberto Paloschi to force Ranieri out with new owners circling.
Once-mighty Juve, who beat Inter last weekend, suffered a new dip in their roller-coaster season and even a Champions League spot now looks tricky with just 12 games left.
Italy number one Buffon was dismissed for handling outside the area on 12 minutes and from then on Juve were struggling.
Algerian midfielder Djamel Mesbah netted for the hosts on 32 minutes when he escaped the offside trap and Andrea Bertolacci doubled the lead early in the second period to power Lecce up to 16th in the table despite the dismissal of Giuseppe Vives.
In other results, goal-shy duo Fiorentina and Sampdoria drew 0-0, Parma stopped the rot slightly with a 2-2 draw with Cesena and Udinese draw a rare blank in a 0-0 stalemate with Brescia.