A Lorenzo Insigne brace inside the first 20 minutes and a late Dries Mertens goal earned Rafael Benitez his first trophy as coach of Napoli, with Juan Vargas on target for the Viola.
Napoli ended the game with only 10 men after Gokhan Inler was given his marching orders, but the Azzurri held on to win the Coppa Italia for the fifth time.
Kick-off was delayed by 45 minutes while there were doubts it would even commence at all after news of a supporter being seriously hurt outside the stadium reached those who were inside the ground.
Napoli captain Marek Hamsik was required to speak to his club's supporters to calm them down before the teams emerged for what the real fans had descended on the Stadio Olimpico to see - a cup final.
Despite the disrupted preparations, the game immediately sparked into life with Gonzalo Higuain going close to opening the scoring in the sixth minute.
Only five minutes later, Hamsik threated a perfectly-weighted ball into the path of Insigne, allowing the only Italian in the Napoli starting XI to concentrate on curling a right-footed shot into the far corner, off the inside of the post.
Insigne it was again who doubled a dominant Napoli's lead in the 17th minute.
Higuain pulled the ball across goal, aiming for Hamsik but instead finding Insigne, whose shot was deflected past Neto off Nenad Tomovic.
The game was certainly doing its best to make up for the unsavoury pre-match incidents and Vargas ensured even more drama when he pulled a goal back in the 28th minute.
He lashed a powerful left-footed volley past Jose Reina after the ball looped over the Napoli defence.
On the stroke of half-time, with Fiorentina now chasing an equaliser, Alberto Aquilani thought he had found it only to see the flag raised for offside.
The Viola continued to push for a second in the second half and, only minutes after coming on, Matias Fernandez sent a shot just over the crossbar.
Giuseppe Rossi was sent on by Fiorentina coach Vincenzo Montella, bringing an end to his five-month injury absence just over a month before the start of the World Cup, but he was only able to watch as Goran Pandev wasted the chance to seal victory at the other end.
Mertens put the Macedonian through on goal but he tried to nudge the ball tamely past Neto, who made an easy stop.
That miss looked like it could come back to haunt Napoli after Inler received his second yellow card in the 79th minute, leaving the Azzurri with just 10 men.
The final 10 minutes saw an onslaught on the Napoli goal, with Josip Ilicic wasting the best chance five minutes from time after being put through by Alessandro Matri as he placed his shot beyond the far post.
Napoli then broke with Jose Callejon threading a pass through to Mertens, who clinched the Coppa Italia for Benitez's men by picking his spot in the far corner of Neto's goal.