Juve had turned up the pressure with a 2-1 win over Udinese on Saturday but Milan responded with a dominant display
Zlatan Ibrahimovic curled Milan into the lead with a superb 25-yard free-kick, Antonio Nocerino doubled their lead before half-time and Massimo Ambrosini added a classily taken third 15 minutes from time.
Inter Milan's seven-match winning run was brought to an end as they were beaten 1-0 at relegation-threatened Lecce.
Guillermo Giacomazzi scored for Lecce five minutes before half-time and Inter, despite having two goals disallowed when Esteban Cambiasso and Diego Milito were denied by offside flags, could not find a response.
Lazio remain on the fringes of the title race after a 3-0 win at Chievo.
Hernanes got them up and running in the first half and, although they had to wait until the closing stages for Miroslav Klose to see them over the line with a brace, they had too much for the Gialloblu.
Roma's winning run came to an end as Bologna held them to a 1-1 draw at the Stadio Olimpico.
Marco Di Vaio put the visitors ahead in the 56th minute with Miralem Pjanic equalising for the Romans six minutes later.
Genoa held on for a dramatic 3-2 win over Napoli to return to winning ways after their crushing defeat at Palermo last weekend.
Rodrigo Palacio was on target twice with Alberto Gilardino opening his account for Genoa, who led 3-0 with nine minutes remaining.
However, goals from Edinson Cavani and Ezequiel Lavezzi within the space of a minute gave the visitors hope as they threatened an extraordinary comeback.
Fabrizio Miccoli starred and Igor Budan headed both goals as Palermo saw off basement club Novara 2-0.
Novara were much the better side in the first half-hour, but the hosts gradually imposed themselves on the game and took the lead shortly before half-time.
Miccoli then drove them forward throughout the second half and set up Budan for the second time to make the game safe in the 72nd minute.
Fiorentina claimed their first win at home since December 4 with a triumph over struggling Siena.
Stevan Jovetic put the hosts ahead in the fourth minute before Cesare Natali made it 2-0 in the Tuscany derby shortly after the hour mark.
Siena's Emanuele Calaio converted from the penalty spot a minute from time following Matija Nastasic's handball but the Viola held on.
A Marco Rossi own goal handed 10-man Atalanta a 1-0 triumph at Cesena.
Rossi deflected Ezequiel Schelotto's cross into the back of his own net in the 76th minute and Atalanta held on despite being reduced to 10 men when leading scorer German Denis was shown a second yellow card for a handball.
Alessandro Matri scored twice as Juventus edged past Udinese 2-1 in the Turin snow to open up a four-point cushion at the Serie A summit.
Matri opened the scoring three minutes before the break and then bagged the clincher for the Bianconeri in the 62nd minute after Antonio Floro Flores had equalised for the third-placed visitors in the 56th minute.
Second-placed AC Milan can close the gap back to one point with victory over Cagliari at the San Siro on Sunday night.
Earlier on Saturday evening, Catania and Parma played out a 1-1 draw at the Stadio Massimino to remain separated in the standings by just a point.
Gonzalo Bergessio put the 13th-spotted hosts in front in the 33rd minute only for Francesco Modesto to equalise 10 minutes later.