Milan moved to the Serie A summit as Ismael Bennacer and Zlatan Ibrahimovic struck late to hand them a pulsating 4-2 win over nine-man Bologna.

Rafael Leao and Davide Calabria scored either side of Adama Soumaoro's dismissal to give the Rossoneri a healthy advantage at the interval.

That was wiped out in the space of seven minutes at the start of the second period, however, with an Ibrahimovic own goal and a Musa Barrow strike restoring parity at the Stadio Renato Dall'Ara.

Bologna had a second man sent off before the hour mark, Roberto Soriano given a straight red card for a late challenge, and Stefano Pioli's Milan landed a memorable three points thanks to fine late strikes from Bennacer and Ibrahimovic.

Leao put Milan ahead in the 16th minute with a deflected strike, before Soumaoro was shown a red card for bringing down a clean-through Rade Krunic just outside the area four minutes later.

Milan took advantage of their numerical superiority in the 35th minute, Calabria lashing home a second from 15 yards.

The hosts stormed back at the start of the second period, though, with Ibrahimovic – making his first start since May 9 – heading into his own net four minutes after the interval to give Sinisa Mihajlovic's side hope.

Barrow then remarkably drew Bologna level in the 52nd minute, slotting past Ciprian Tatarusanu after being played in by Soriano.

Rossoblu captain Soriano was then given his marching orders after a VAR review six minutes later for an ugly challenge on Fode Ballo-Toure.

The hosts held firm until the 84th minute when Bennacer powered into the bottom-left corner from 20 yards, while Ibrahimovic added gloss to the scoreline with a whipped finish from the same distance six minutes later.