Slip-ups from Inter, Lazio and Roma gave Milan the chance to strike an important blow in the Champions League race on Monday, and they looked set to do so when Giroud headed the opener on the stroke of halftime.
However, Salernitana hit back through Dia just after the hour mark, before a VAR review denied Milan a penalty when Ismael Bennacer went down easily under Domagoj Bradaric's challenge.
The result means Milan remain fourth, just a point clear of fifth-placed Roma in a tense battle for Champions League qualification.
While Milan dominated possession from the off, Salernitana kept them quiet until the half-hour mark, when Frenchman Giroud sent a trademark overhead kick narrowly over the crossbar.
Salernitana then squandered two chances on the break, with Grigoris Kastanos' effort deflecting wide after a loose pass from Mike Maignan, before the Milan goalkeeper made a fine last-ditch challenge to prevent Dia rounding him.
The visitors' resistance was broken just before halftime as Giroud met Bennacer's corner at the near post to glance a header into the bottom-left corner.
The visitors hit back after the restart as Bradaric led a Salernitana break down the left, with his driven cross turned beyond Maignan by a stretching Dia.
Milan threw on Zlatan Ibrahimovic in search of a winner and saw referee Federico La Penna reverse a decision to award them a spot kick, while Guillermo Ochoa denied Divock Origi with a fine save late on.
Ochoa was involved again as Milan went agonisingly close to a last gasp winner, somehow clawing the ball away from the goal line following a scramble.
AAP