Federico Chiesa's strike 17 minutes from time earned Fiorentina their first away win of the season as AC Milan's recent struggles continued in a 1-0 loss at San Siro.
The visitors barely threatened Gianluigi Donnarumma's goal but Chiesa jinked past Davide Calabria and fired home his first goal since September to settle the contest.
The Rossoneri have now won just one of their previous six contests in Serie A and have failed to score in any of their last three.
Milan also dropped out of the top four thanks to Lazio's win earlier in the day, with Fiorentina now just two points behind them in seventh.