The Italian striker smashed home a second half free kick after Philippe Mexes's opener to secure the points for Clarence Seedorf's men
Goals in each half from Philippe Mexes and Mario Balotelli saw Seedorf's mid-table side lift their flagging season as they produced a masterful display at the Stadio Artemio Franchi.
Fiorentina, meanwhile, were dealt a blow to their Champions League hopes, after successive Serie A wins had lifted hopes of a late surge towards third place.
Mexes nodded in from close range from a Balotelli free-kick midway through the first half before Balotelli himself doubled the lead with a superb free-kick.
In the end it was comfortable for the visitors, as they finally began to show signs of returning to something like their best.
Seedorf rang the changes after the "positive step" of Sunday's 1-1 draw at Lazio, with goalkeeper Christian Abbiati, Sulley Muntari, Adel Taarabt and Balotelli all restored to the starting line-up.
But it was Fiorentina who carved out the first chance of the game after a patient opening, with Milan loanee Alessandro Matri going close with a neat header from a deep Gonzalo Rodriguez cross.
The hosts were forced into an early change when defender Manuel Pasqual left the field in the 18th minute with an apparent injury, to be replaced by Argentinean Facundo Roncaglia.
And they were behind in the 23rd minute when a long-range free-kick from Balotelli was mishandled by goalkeeper Neto and Mexes was there to head the rebound over the line from close range.
A weaving run from Juan Cuadrado resulted in Abbiati being forced into a smart save at his near post as Fiorentina sought an immediate response, but their deficit was almost doubled on the half-hour mark when Muntari collected a loose ball 35 yards out and looped a volley on goal that Neto had to deal with.
Milan were strong in midfield and frustrating the hosts, and a counter attack lead by Taarabt saw the Moroccan draw another smart save from Neto before Muntari lashed wastefully over from an inviting right-wing Keisuke Honda cross five minutes before the break.
Matri squandered a golden opportunity to equalise just three minutes into the second period when Joaquin headed a deep cross into the box and the unmarked 29-year-old headed wide with the goal at his mercy.
Spanish winger Borja Valero then saw a 20-yard left-footed drive go narrowly over for Fiorentina, as Milan continued to keep Vincenzo Montella's side at arm's length.
And in the 64th minute they doubled their lead with a piece of individual brilliance.
Balotelli had begun to grow into the game, and he curled an exquisite 20-yard free-kick over the wall to beat Neto for his 12th league goal of the season to put the game beyond the hosts.
Fiorentina piled on some late pressure but their play was ragged and prompted no clear cut chances as Milan comfortably saw the game out.