Trepoängaren innebär att Milan täppte till luckan bakom serieledande Juventus som är en poäng före.
Själv stack Ibrahimovic upp i topp.
En läckert skruvad frispark alldeles intill målvakten Michael Agazzis högra stolpe innebar det 15:e ligamålet för den svenske anfallsstjärnan. Därmed gick han upp i ensam skytteligaledning, ett mål före Antonio Di Natale, Udinese.
Målet kom i den 32:a minuten på San Siro. Sju minuter senare bröstade Ibrahimovic ned ett inlägg perfekt till Antonio Nocerino som pricksköt 2—0.
Två snabba mål som sänkte Albin Ekdals Cagliari. Det skulle bli ytterligare ett Milanmål genom inhopparen Massimo Ambrosini.
Det gav Milan tre nödvändiga poäng inför den svåra bortamatchen mot seriefyran Lazio på onsdag. Med sju minuter kvar att spela byttes "Ibra" ut efter ett gott dagsverke.
Lazio besegrade Chievo på bortaplan med 3—0 sedan Miroslav Klose gjort två mål på matchens tre sista minuter.
Milans ärkerival Inter, femma i serien, har klättrat spikrakt uppåt efter en segersvit på sju matcher, men den bröts av bottenlaget Lecce som vann med 1—0 efter mål av Guillermo Giacomazzi. Inter hade två bollar i mål, men båda vinkades av för offside.
TT