Milan now have 63 points, seven more than second-placed Juventus, who host Inter Milan in Sunday’s top match.
Pablo Osvaldo put Roma ahead on 44 minutes but talismanic Sweden striker Ibrahimovic levelled from the penalty spot on 53 minutes after Daniele De Rossi’s handball.
Ibrahimovic then lobbed the goalkeeper and headed home from close range seven minutes from time as Milan perfectly warmed up for Wednesday’s Champions League quarter-final first leg at home to Barcelona.
Roma remain sixth on 44 points. Udinese, who share fourth place with Napoli, visit Palermo in Saturday’s other Serie A match (1945 GMT).
(For more sports news and updates, follow Ahram Online sports on Twitter: @AO Sports)