Milan conceded a last minute equaliser as they drew 1-1 with Lazio in Serie A on Sunday evening.
Il Rossoneri looked to have won the game through Franck Kessie, but a last minute strike from Lazio's Joaquin Correa dashed their hopes of coming away with all three points.
The first clear cut opportunity of the match fell Milan's way in the 15th minute when the ball dropped to Hakan Calhanoglu inside the 18-yard-box. The Turkish midfielder unleashed a vicious effort that forced Thomas Strakosha into a superb full stretch save, tipping the ball onto the post and behind for a corner.
The rest of the half ticked by with little else to shout about for either side. Lazio did have the ball in the back of net in the 29th minute, but the goal was chalked off for offside.
The second half saw both sides spring out of the traps very quickly. Lazio looked the sharper of the two teams in the final third and they came close to opening the scoring through Wallace, who brought the best out of Gianluigi Donnarumma with a powerful header in the 70th minute.
That save would prove to be crucial as Milan scored a surprise goal just minutes later. Davide Calabria got in behind the Lazio defence before pulling the ball back to Franck Kessie, whose shot took a wicked deflection off of Wallace to evade Strakosha.
Milan defended their lead with all their might but after significant pressure from the hosts, the Rossoneri were undone right at the death. Joaquin Correa created some space just inside the 18-year-box before unleashing a wicked effort into the bottom corner, leaving Donnarumma with no chance.
Key Talking Point
Lazio, and in particular Simone Inzaghi, will be breathing a huge sigh of relief after salvaging a point late on.
Inzaghi's tactical changes midway through the second half halted his side's momentum and could have led to their defeat. By substituting both Sergej Milinkovic-Savic and Luis Alberto, Inzaghi essentially shot himself in the foot by removing his side's biggest attacking threats.
A draw was the least Lazio deserved, but with Alberto and Milinkovic-Savic still on the pitch, they could have easily picked up all three points.
Starting XI: Strakosha (6); Wallace (6), Acerbi (6), Radu (6); Marusic (6), Parolo (6), Badelj (6), Milinkovic-Savic (6), Lulic (6); Luis Alberto (7), Immobile (5).
Substitutes: Lukaku (6), Correa (7), Caicedo (N/A).
Star Man - The decision to replace Luis Alberto after just 65 minutes was a strange one, considering how influential the Spanish midfielder was in the final third for Lazio.
He fashioned a number of decent opportunities for both himself and his teammates and was causing Milan all sorts of problems prior to his substitution.
Worst Player - When Ciro Immobile fails to perform, Lazio tend to struggle and that proved to be the case here.
The striker had little to no influence on the game and it took him until the closing stages to even have a shot on goal.
Key Talking Point
Milan supporters would have been fearing the worst when they saw the team sheet before the game, as the defence featured two full-backs in a back three and Fabio Borini at left wing-back.
It was never going to be easy, but Milan more than held their own. Given the fact that so many players were playing out of position, it was a very respectable performance from Gennaro Gattuso's side.
Despite conceding that late goal, Il Rossoneri will view this one as one point gained rather than two points dropped in their quest to finish in the top four this season.
Starting XI: Donnarumma (7); Abate (6), Zapata (6), Rodriguez (6); Calabria (6), Kessie (6), Bakayoko (7), Borini (5); Calhanoglu (6), Suso (6); Cutrone (5).
Star Man - It's been a turbulent year for Tiemoue Bakayoko, but he seems to be slowly turning things around at Milan.
The Frenchman bossed the midfield and demonstrated the fact that he is more than capable of carrying out a variety of tasks in the middle of the park. If he keeps this sort of form up, then Milan may be wise to make a permanent bid for him once his loan deal runs out.
Worst Player - In all fairness, wing-back is not his natural position, but Fabio Borini was all over the place at times.
Gattuso doesn't really have any other options at his disposal, but the sooner someone else comes in to replace Borini, the better.
Both sides will now be switching their attentions to the Europa League as Lazio travel to Cyprus to face Apollon Limassol and Milan host Luxembourg minnows Dudelange.