The Viola started well and broke the deadlock midway through the first period, as Gonzalez rose above Milan Skriniar to reach a long ball before charging into the box and squaring for Riccardo Sottil to tap in.
Inter were toothless in attack but looked to have equalised shortly before half-time, as Nikola Milenkovic turned an Ivan Perisic cross into his own net, only for the Nerazzurri wing-back to be ruled offside.
The champions were level early in the second half however, as a loose ball in the box allowed Edin Dzeko to tee up Matteo Darmian, and the wing-back made no mistake with a shot into the bottom corner. Minutes later, the comeback was complete as Dzeko met a corner to power a header home.
With less than 10 minutes remaining Fiorentina were dealt a further blow as Gonzalez was dismissed for dissent, before Perisic extended the lead further as he finished off a quick break down the middle.