Napoli will be guaranteed a place in next season's Champions League if they win their final game of the season at home to Hellas Verona next Sunday.
Juve had beaten champions Inter Milan on Saturday to move above Napoli, who therefore travelled to Florence needing a victory to ensure they would go into the final round of fixtures in one of the four Champions League qualifying positions.
Napoli were frustrated by the 13th-placed hosts in the first half as goalkeeper Pietro Terracciano kept out Piotr Zielinski's strike and Insigne's free kick rattled the bar, while Fiorentina striker Dusan Vlahovic had a header ruled out for offside.
The breakthrough came after 57 minutes when Napoli were awarded a penalty for a shirt pull at a corner following a VAR review, and Viola substitute Bartlomiej Dragowski was shown a straight red card for protesting the decision.
Insigne's tame spot kick was saved but he fired home the rebound, and the Italy winger was close to a second when denied by the woodwork again with a low shot that struck the post.
Napoli doubled their advantage on the 67th minute when Insigne laid off a pass to Zielinski, whose first-time strike took a big deflection off Lorenzo Venuti on its way in and was awarded as an own goal to wrap up the points.