AC Milan s Algerian midfielder Ismael Bennacer (C) celebrates with teammates after scoring during the Italian Serie A football match between Bologna and AC Milan at the Renato-Dall Ara stadium in Bologna on October 23, 2021. (Photo: AFP)
Ismael Bennacer put Milan ahead for the second time six minutes from the end before Zlatan Ibrahimovic sealed a hard-fought win against a Bologna team which had Adama Soumaoro and Roberto Soriano both sent off in the first hour.
Stefano Pioli's unbeaten Milan are a point ahead of Napoli, who travel to Roma on Sunday hoping to maintain their 100 percent record so far this season, but will not be happy with their display.
Sinisa Mihajlovic's Bologna meanwhile are ninth on 13 points after a defeat which will frustrate their Serb coach after they battled back to level shortly after the break.
Everything seemed to be going Milan's way in the 16th minute when Rafael Leao collected Ibrahimovic's classy through ball and lashed home a shot via a huge deflection off Gary Medel.
Soumaoro was then shown a straight red card for bringing down Rade Krunic as the Bosnian raced through onto Simon Kjaer's pass.
By the time Davide Calabria lashed home the second in the 35th minute Milan looked home and dry, but Bologna came racing out of the traps after the break and were level within seven minutes of the restart.
First Ibrahimovic weakly glanced home Nicolas Dominguez's inswinging corner under little pressure in the 49th minute, and then Musa Barrow slipped behind a stunned Milan defence to confidently finish from Soriano's pass.
Soriano then left his team down to nine with more than half an hour left to play after planting his foot onto Fode Ballo-Toure's ankle as the Senegal international was crossing the ball.
And Bennacer broke the home side's resistance with a stylish first-time finish as the ball dropped to him from high.
Ibrahimovic then gave the scoreline a more flattering appearance when he collected from Bennacer and scored his second league goal of the season.
Earlier, Empoli held off battling Salernitana to win an exciting Serie A contest 4-2 after racing to a four-goal lead at half-time.
Strikes from Andrea Pinamonti, Patrick Cutrone and a Stefan Strandberg own goal put the away side three ahead in under a quarter of an hour, and the match looked dead and buried once Pinamonti scored his second from the penalty spot seconds from the break.
However bottom side Salernitana, playing their first match under new coach Stefano Colantuono, reacted after the restart and halved the deficit in the 55th minute when, after Luca Ranieri netted his first Serie A goal, Ardian Ismajli put in his own net.
However Tuscan outfit Empoli rode their luck, with Guglielmo Vicario clawing out Milan Djuric's header from under the bar in the closing minutes, and held on for a win which moves them up to 10th on 12 points.
Sassuolo moved away from the relegation zone with a 3-1 win over promoted Venezia which moves them up to 12th on 11 points.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)