Milan, coming off five consecutive Serie A victories, had the stronger start and penalty appeals on seven minutes when Valon Behrami clumsily intercepted a cross as it was about to land on Zlatan Ibrahimovic's chest.
Milan veteran midfielder Clarence Seedorf got the ball in the back of the net on 18 minutes afer a splendid move and replays show the Dutchman was level when Ibrahimovic volleyed the assist through the middle, so the linesman got it wrong by disallowing the goal.
Ibra attempted a spectacular scorpion flick that sailed over the bar and Alberto Aquilani's header skimmed the woodwork, then Nastasic got a crucial touch to stop Robinho pulling the trigger in the area as Milan continued to dominate.
Gilardino did get a chance before the break, but blasted it over the bar, then Robinho's angled drive flashed across the face of goal and Artur Boruc blocked another Seedorf strike.
Alexandre Pato, who made his comeback after two months out with muscular problems, has previously scored in all five of his meetings with Fiorentina and nearly made it six, as he skipped between defenders and unleashed a daisy-cutter that Boruc fingertipped on to the base of the upright.
Pato continued to be the danger man, as Nastasic needed a crucial sliding tackle to stop The Duck prodding home from seven yards. Again Ibrahimovic chipped a ball over the defence for Pato, forcing Boruc to rush out and snatch it from him.