As AC Milan vs Salernitana started, it looked as if Milan were on course to take advantage of the poor results for Inter, Lazio and Roma as they took a one-goal lead into the break courtesy of Olivier Giroud's header from a corner, however the lead was squandered.
AC Milan vs Salernitana: Summary
The Rossoneri's defence had looked shaky in the first half and they were punished in the second with Boulaye Dia's first time finish at the near post taking advantage of a lack of coverage.
Despite having a couple of efforts cleared off the line it was just not Milan's night, meaning they missed out on the chance to go level on points with Inter in second and instead remain fourth in the league.
Stefano Pioli chose to make two changes to the starting line-up compared to the team that drew with Spurs to secure progress to the quarter-finals of the Champions League as Alexis Saelemaekers came in for the injured Junior Messias at wing-back and Ismael Bennacer joined Rade Krunic in the midfield.
There wasn't an awful lot to get the over 72,000 fans off their seats at San Siro in the opening exchanges, with the main threat from Milan being a cross from Saelemaekers on the right that was cleared with Olivier Giroud lining up a volley.
Brahim Diaz had a frustrating start to the game as he found himself getting bumped and bundled off the ball, but he did well to spin and win a free-kick around 20 yards out in the 13th minute, though Bennacer saw his effort blocked behind.
The Rossoneri's first big chance of the game came midway through the first half as Theo Hernandez was stopped by Gyomber but the ball fell to Rafael Leao who flashed a shot across the face of goal that just needed touching in.
Five minutes later Giroud tried the spectacular as he launched into a bicycle kick and got on the end of the corner that came in from the left, getting a good connection on the ball but just sending it over the bar.
The best way to describe Milan in possession in the first half would be sloppy and it nearly proved fatal just after the half-hour mark as a giveaway from Bennacer saw Kastanos pick up the ball in a dangerous position inside the box with Maignan off his line yet Krunic did well to divert it wide and save his midfield partner.
At the other end of the field Leao was again at the heart of danger as he cut onto his right foot and curled one towards the far corner that took a deflected and fizzed wide.
If there were any doubts about how special Maignan is – and there shouldn't be by now – he dispelled them minutes before the break. A mix-up at the back between Thiaw and Kalulu saw Dia get through on goal, yet Maignan came off his line and cut out the danger with a slide tackle Paolo Maldini would have been proud of watching on.
Milan capitalised on Salernitana's missed opportunities in the minute added at the end of the first half and the goal came from Olivier Giroud. An in-swinging corner from Bennacer on the right met the head of the Frenchman perfectly and he nodded home from close range.
Second Half:
Pioli's men had the first chance of the second half and rather fittingly for how Leao's night was going it was he who missed it. Bennacer did well to beat a couple of players on the dribble and fire a low ball into the near post that the Portuguese winger deflected wide.
The goal scorer Giroud had been penalised for a number of clumsy fouls when tracking back from his position up front and just before the hour he finally went into the book, with the yellow card meaning he misses the game at Udinese.
Not long after that Salernitana got the goal that their pressure in the first half had suggested they might be capable of, and it came from their main threat Boulaye Dia. It was a defensive mix-up that led to the goal as nobody picked up the run of the Senegalese forward who finished first time from Candreva's low cross.
The response from Pioli was a triple sub as Leao, Brahim Diaz and Giroud came off for Charles De Ketelaere, Divock Origi and Zlatan Ibrahimović, moments before Bennacer flashed a shot over the bar.
With 20 minutes left on the clock Milan were awarded a penalty by the referee La Penna as Bennacer took a tumble in the box, however he was called over by the VAR chief Banti and overturned his decision given there seemed to be no contact.
Milan were inches away from retaking the lead when a cross from the right flank was aimed towards Ibrahimovic and Origi at the far post, with the latter chesting an effort on goal that Ochoa made a fantastic reaction save on his line to deny.
The last couple of changes from Pioli saw Alessandro Florenzi and Sandro Tonali come on for Saelemaekers and Bennacer.
With just over three minutes remaining Milan were left questioning how they didn't get back in front. A cross flew across goal to Theo who dinked one back over the other way that Ochoa scrambled to stop before again clawing the rebound from Florenzi back off the line.
There was what would best be described as a bench-clearing altercation in the fifth minute of the six added on at the end of the 90 minutes with Theo taking exception to Salernitana's attempts to stop him taking a throw-in.