Nigel de Jong headed the Rossoneri into a 25th-minute lead, but second-half substitute Josip Ilicic fired La Viola level.
Two dropped points meant Filippo Inzaghi's side had to be content with sixth place, a point behind third-spotted Udinese, with the visitors down in 11th.
Milan went into the game on the back of two straight wins and started the match the stronger.
They went in front from an unlikely source, though, as Jeremy Menez swung in a corner from the right to the back post, the ball was headed back across goal and defensive midfielder De Jong nodded it past Neto in the Fiorentina goal.
La Viola boss Vincenzo Montella looked to shake things up in the second half in a bid to find a way back into the match.
The former striker threw on the Slovenian forward nine minutes after the break and the move paid dividends in the 72nd minute.
Ilicic advanced towards the area and, with the Milan defenders backing off, punished them by fizzing a low shot into the bottom right corner with his left foot.
Inzaghi brought on Fernando Torres for the last 10 minutes but he could not help the hosts find a winner as their hopes of closing the gap further on top two Juventus and Roma were frustrated.