Two games ago champions Milan led the table by four points but following a draw at Catania and now this defeat Antonio Conte's Juve are a point clear.
Centre-back Leonardo Bonucci scored for the second game in a row and Fabio Quagliarella added the other in Sicily.
"I prefer to be in front because now we're not reliant on anyone or anything," said Conte.
"We did well to exploit Milan's two hiccups, but there are still seven games to go and our run-in is tougher than Milan's.
"But something has changed in the hierarchy."
But they were most indebted to former forward Amauri, who scored a dramatic late winner at the San Siro.
The Brazilian-born Italy international's goal ruined Antonio Cassano's return to Milan first team action following heart surgery.
Amauri was frozen out by Juventus earlier this season and forced out of the club in January but the 31-year-old's first goal for his new employers may have just handed his ex-employers the title initiative.
Not that AC Milan coach Massimiliano Allegri sees it that way.
"We need to accept the result in the knowledge that there are still a lot of matches left (seven) and everything is still wide open," he said.
"It's been a bad week with the defeat to Barcelona (which saw Milan eliminated from the Champions League) and this one but we have to regroup because there's still everything to play for.
"We have to stay calm, we didn't expect to stumble here but we have to be even more fired up because of what we've wasted."
The hosts had been gifted the opener when Matija Nastasic was harshly adjudged to have fouled Maxi Lopez in the box.
Zlatan Ibrahimovic stroked home the spot-kick and Maxi Lopez later hit the post as Milan threatened to run away with the match.
But Fiorentina stuck doggedly to their task and equalised when Lorenzo Di Silvestri played Stevan Jovetic in behind the backline and the Montenegro playmaker beat goalkeeper Christian Abbiati.
Amauri then struck a minute from time following a Philippe Mexes mistake, playing a one-two with Jovetic before clipping the ball home.
Fiorentina boosted their own survival hopes, moving up two places to 15th and maintaining a five-point gap to the drop zone.
In Sicily, Juve dominated throughout and Quagliarella was wasteful in the first half when put clean through, only to shoot wide.
But Bonucci rose highest in the box to meet an Andrea Pirlo corner on 56 minutes with a flicked header that crept inside the far post.
And Quagliarella sealed the win when teed up by Alessandro Matri 21 minutes from the end.
Lazio took a decisive step forwards in the Champions League qualification battle by beating Napoli 3-1 at Rome's Stadio Olimpico.
Andrea Candeva, a spectacular Stefano Mauri overhead strike and Cristian Ledesma, from the spot, scored the goals for the Romans with Goran Pandev replying for Napoli against his former club.
It means Lazio now lead Udinese, 3-1 winners over Parma, by three points with Napoli another three points back from that.
Ghana midfielder Kwadwo Asamoah scored a brace either side of captain Antonio Di Natale's half-volley for Udinese with Alessandro Lucarelli scoring for the visitors.
Roma's Champions League qualification hopes hit a bump in Puglia as they were thrashed 4-2 by lowly Lecce.
Roma remain four points behind third spot but could yet lose more ground in the evening.
Inter Milan played out an entertaining 2-2 draw away to Cagliari, in a match played in Trieste, 500 miles away from the hosts' Sardinian home, due to an unplayable pitch.
Inter closed in on a Europa League spot as they now trail Roma by just two points.