Milan, which will travel to Tottenham Hotspur on Wednesday for a return match in the last round of the Champions League, has not previously lost in all competitions since a 1-0 loss to Inter Milan on Feb. 5.
They remain fourth in the standings with 47 points, on par with third-place Inter Milan, who host Lecce on Sunday.
Fiorentina, who on Monday ended their nearly two-month wait for a Serie A win with a 3-0 win over Hellas Verona, are in 12th place with 31 points.
They have won two straight in Serie A without conceding for the first time since January 2020.
We have hit the goal a lot in many matches, but never with as much desire as today, coach Vincenzo Italiano told Sky Italia.
In the last five matches we showed that our strikers can score goals and we are happy.
Fiorentina could have taken the lead in the 13th minute from midfielder Giacomo Bonaventura’s free kick, but his shot from the edge of the box was well met by Milan goalkeeper Mike Magnan.
Bonaventura was close to putting Fiorentina ahead again in the 26th minute, but his shot from close range was repelled by Milan defender Ficayo Tomori.
Milan’s first goal came after the half-hour mark when Olivier Giroud, receiving a pass from deep in the field, struck the first time, but Fiorentina goalkeeper Pietro Terracciano saved the team.
In the first half, Fiorentina had more ball possession and strikes, but could not find a passing yard.
After the break, however, they were awarded a penalty when Tomori fouled striker Jonathan Ikona and Gonzalez sent the Milan goalkeeper the wrong way.
Milan had a chance to answer before the hour mark through captain Theo Hernandez, who picked up a long ball from Pierre Caloulou and struck from outside the box, but was kept out by Terracciano.
Instead, Fiorentina doubled their lead with three minutes to go thanks to Jovic’s close-range strike, which was beautifully set up in the penalty area by defender Dodo.
Hernandez scored for Milan in stoppage time with a stunning shot into the net, but Stefano Pioli’s side had no time to get back into the game.
Fiorentina, which has won only three of its previous 16 Serie A home matches against Milan, hosts Turkey on Thursday.Sivasspor in the Europa League. They will then travel to Cremonese in their next league match on March 12.
After a midweek trip to London, Milan hosts Salernitana on March 13.