The 40-year-old Swede opened the scoring in the first half with a brilliantly drilled free-kick to notch his 150th goal in the Italian top flight.
Franck Kessié then doubled the visiting team’s lead from the penalty spot after Ibrahimovic had been brought down in the box by Roma’s Roger Ibañez.
The landmark goal was another reminder from Ibrahimovic that he can still play at the highest level, having enjoyed success in Sweden, Netherlands, France, England, Spain, Italy and the US.
Roma was then given a glimmer of hope after Theo Hernández was sent off with 25 minutes remaining for a second yellow card, but the home side could only muster a 93rd-minute consolation goal through Stephan El Shaarawy.
Victory keeps Milan level on points with Napoli — which beat Salernitana 1-0 — at the top of Serie A, with those two teams already opening up a seven-point lead over Inter Milan in third.
The defeat is Roma’s first at home under Mourinho, but the club remains in the fourth and final Champions League qualifying spot.