Serie A leaders fail to banish their Champions League blues as they fall to a surprise defeat to at San Siro
Zlatan Ibrahimovic fired the home side in front from the penalty spot, but Stevan Jovetic levelled and a late, late winner from Amauri stunned the home fans into silence, and meant that Juventus went top with a victory at Palermo later Saturday.
Milan started the game half-asleep, the visitors making the most of their hosts stupor to go close early on through the lively Jovetic - who fired a warning across Abbiati's goal after just three minutes.
At the back, the Viola appeared to be coping well with Milan's new-look strikeforce of recalled Argentinian Maxi Lopez and Zlatan Ibrahimovic, while further forward Serbian Ljajic was looking dangerous - firing one free-kick over from a decent position.
Slowly, but surely, however Milan started to dominate - Ibrahimovic increasingly involved in some dangerous link-up play. Unsurprisingly, it was the Swede who had the hosts' first effort on target - his 25-yard free-kick palmed away by Artur Boruc in the Fiorentina goal - with Sulley Muntari blazing his follow-up effort over the bar.
Fiorentina briefly flickered into life as an attacking force, but was being forced to shoot from distance - both Jovetic and Behrami blazing long-distance efforts wide of the target.
Milan's corner count was rising almost by the minute, but it looked like it needed a spark - or a helping hand - if it was to think about taking the lead. It turned out to be the latter - Lopez winning the hosts a penalty after tumbling over the flat-footed Nastasic in the area while trying to latch onto an Ibrahimovic's cross.
Ibrahimovic stepped up confidently to drill home a low penalty, which sent Boruc the wrong way.
Up top, Milan's strike pairing was starting to click, Ibrahimovic finding Lopez with a lovely drifting pass, which the Argentine pulled down and smacked against Boruc's left-hand post from 15 yards.
Milan finished the half on top - Ibrahimovic making a barnstorming run though the visitor's defense only to blaze over.
With everyone expecting Milan to coast to victory in the second half, the last thing expected was a Fiorentina goal - but one arrived within minutes of the re-start when Jovetic took advantage of a suicidally high line from the hosts to run onto De Silvestri's through ball and slot home.
Milan was stung into action with Abate seeing one shot heroically blocked by Di Natale and Boruc pulling over a double save from Ambrosini and Emanuelson.
However, Milan's attacking efforts carried more than a whiff of desperation and were limited to blocked shots and penalty box melees. Lopez did hit the net, but saw his header disallowed after Ibrahimovic's cross drifted out of play.
With a frustrated Milan mentally coming to terms with dropping two points, however, Amauri played a one-two with Jovetic, muscled Mexes off the ball and slotted home to throw the Scudetto wide open.
Milan then watched Juventus overcome Palermo away from home to leapfrog the Rossoneri to the top of the table. Fiorentina, meanwhile, will be celebrating a famous victory that moves it well clear of the bottom three.