The 39-year-old powered a bullet header into the bottom corner in the first half before bundling in his second of the night after the break to take his league-high tally to 10 goals in six games this season.
Dries Mertens pulled one back for the home side to give them hope, but a clumsy challenge by Tiemoue Bakayoko earned the Napoli midfielder a second yellow card with 25 minutes left on the clock and Jens Petter Hauge eventually notched Milan's third in stoppage time.
Ibrahimovic was forced off with a muscle problem with 11 minutes remaining, and he was pictured sitting on the bench with an ice pack strapped to the back of his left leg.
A club spokesperson said on Monday that Ibrahimovic could take between two and three weeks to recover from the injury, which will likely see him miss Europa League matches against French side and Group H leaders Lille and Scotland's Celtic on Thursday and on Dec. 3, respectively.
The result means unbeaten Milan retain top spot on 20 points, two clear of Sassuolo in second and six ahead of sixth-placed Napoli.
It also ended an 11-match winless league run for the Rossoneri in this fixture and marked only their second Serie A victory away to Napoli in the 21st century, the other a 2-1 win in October 2010 in which Ibrahimovic also scored during his first spell at the club.
Milan's unbeaten run of league form is now 20 games long and stretches back to March, but Bonera refused to be drawn on the possibility of clinching the club's first Serie A title since 2011 this season.
"We want to stay high up the table but after eight rounds it's too soon to get carried away," he said.
"There are teams that have invested more than us and that were built to win the league. We weren't built to win straight away, but we're growing game after game."