Milan incredibly failed to convert two penalties, so the Ruben Loftus-Cheek brace was cancelled out by a stoppage-time Riccardo Orsolini spot-kick.
Seeking a fifth straight Serie A victory, the Rossoneri were missing Ismael Bennacer, Fikayo Tomori, Malick Thiaw, Pierre Kalulu, Mattia Caldara, Tommaso Pobega and AFCON participant Samuel Chukwueze. Stefan Posch was suspended for the visitors, with Dan Ndoye, Adama Soumaoro, Sydney van Hooijdonk and Oussama El Azzouzi unavailable.
Joshua Zirkzee returned from a ban and scuffed an early finish straight at Mike Maignan, while Rafael Leao stung Lukasz Skorupski’s gloves at the near post.
Giovanni Fabbian shrugged off Theo Hernandez to almost catch Maignan off his line, but Matteo Gabbia was there to clean up.
Play was halted briefly at the 16th minute to show solidarity to Maignan following racist abuse in last week’s Udinese game, with a Martin Luther King quote: ‘Darkness cannot drive out darkness, only light can do that.’
Bologna took the lead in chaotic circumstances, as Fabbian saw two attempts charged down by Simon Kjaer, then Riccardo Calafiori’s effort was blocked too until Zirkzee finally squeezed the finish between Maignan’s legs at the near post from the tightest of angles.
Kjaer really should’ve equalised three minutes later, but turned the free header over from six yards on a Christian Pulisic cross.
Pulisic went on the counter-attack from a Ruben Loftus-Cheek pass and mis-judged the dink over on-rushing Skorupski.
The referee pointed to the spot when Lewis Ferguson was adjudged to have caught Kjaer in the face as the defender dived down to head the ball. Thiago Motta was so angry at the decision, miming using a water bottle that the foot was not high, that the referee sent him off for dissent.
Olivier Giroud stepped up and horribly scuffed the penalty so badly that Skorupski was able to comfortably smother it on the line. It was his first failed spot-kick in Serie A, but missed two in the Champions League for the Rossoneri.
Milan did equalise before half-time anyway, as Davide Calabria rolled across from the right for Ruben Loftus-Cheek to tap in from six yards.
Ruben Loftus-Cheek scores his third goal in four matches for Milan 🔥
TNT Sports and @discoveryplusUK 📺 pic.twitter.com/YqnquGG7f5
— Football on TNT Sports (@footballontnt) January 27, 2024
Zirkzee really should’ve made it 2-0 after the restart, as he controlled a cross and shrugged off both Kjaer and Gabbia only to then balloon over from six yards.
Leao and Victor Kristiansen also fired off target from promising positions, then Tijjani Reijnders was unlucky to see his curler from the edge of the box thump the crossbar.
Rafael Leao was perhaps not expecting the Pulisic cross to come through and prodded it inches wide of the far post.
Milan earned another penalty when Leao sprinted on the counter and was blocked off by a Sam Beukema hand in the face. Theo Hernandez stepped up this time, but his effort thumped the upright and he could not then put the rebound straight back in, as that is against the rules.
Loftus-Cheek was again on target to restore their lead, as Leao was down the right sending Alessandro Florenzi to the by-line, standing up a cross for the ex-Chelsea midfielder’s free header from six yards.
Ruben Loftus-Cheek scores AGAIN 🤩
That's two tonight and four in his last four for the Englishman 👏
TNT Sports and @discoveryplusUK 📺 pic.twitter.com/xAaC9tCCtd
— Football on TNT Sports (@footballontnt) January 27, 2024
It still wasn’t over, as substitute Filippo Terracciano held Kristiansen’s shirt as he was trying to get on the end of a Riccardo Orsolini cross-shot at the back post. VAR spotted it and the referee awarded a penalty, which Orsolini converted by squirming it under Maignan’s body.
Milan 2-2 Bologna
Zirkzee 29 (B), Loftus-Cheek 45, 83 (M), Orsolini pen 92 (B)
Missed penalty: Giroud 42 (M), Theo Hernandez 73 (M)
Player statistic
2' | Riccardo Calafiori | |||
Rafael Leão | 22' | |||
29' | Joshua Zirkzee (Assist: Riccardo Calafiori) | |||
Davide Calabria | 36' | |||
39' | Lewis Ferguson | |||
Olivier Giroud | 42' | |||
Yacine Adli | 44' | |||
Ruben Loftus-Cheek (Assist: Davide Calabria) |
45' | |||
Ruben Loftus-Cheek | 45+2' |
57' | Kacper Urbanski | |||
Theo Hernández | 74' | |||
Ruben Loftus-Cheek (Assist: Alessandro Florenzi) |
83' | |||
Filippo Terracciano | 90+1' | |||
90+2' | Riccardo Orsolini |