The Florence outfit headed into the game trailing 2-1 from the first leg, but did have the benefit of a precious away goal.
That strike, scored by Juan Manuel Vargas in Udine last week, looked set to prove crucial as defender Manuel Pasqual levelled the tie on aggregate with a superb close-range finish in the opening stages.
Udinese dictated for long periods in the first half, but spurned a number of opportunities to reassume command of the tie at the Stadio Artemio Franchi.
Francesco Guidolin's side were made to pay for their profligacy early in the second half, though, as Colombian midfielder Juan Cuadrado put Fiorentina in complete control of the tie with an excellent individual goal.
And there proved to be no way back for Udinese, who ended the game with 10 men as they slipped to a 3-2 aggregate defeat.
Fiorentina took the lead with the first real chance of the game after 13 minutes as Pasqual volleyed home in emphatic fashion from Joaquin's knock back.
Udinese responded well to going behind, and would have levelled if not for two fine saves from Neto, who denied Gabriel Silva from close range before keeping out Maurizio Domizzi's header from the resulting corner.
The visitors continued to push for an equaliser and were denied by the woodwork on 32 minutes as veteran striker Antonio Di Natale's header crashed against the post.
However, Vincenzo Montella's hosts remained a threat going forward, with Joaquin testing the reflexes of Simone Scuffet with a fine curling effort shortly before the break.
And the same player was involved once again as the attacking midfielder's deflected effort forced another strong stop from Scuffet in the early stages of the second half.
Fiorentina's second goal arrived in spectacular fashion a minute after the hour mark when Cuadrado capped a quick counter-attack by thumping an effort in off the crossbar from the edge of the area.
Udinese almost responded immediately but Silvan Widmer fired well wide at the far post from Domizzi's left-wing cross.
The closing stages were marred by ill-discipline, as first Cuadrado received a booking that will see him miss the final, before unused Udinese substitute Emmanuel Agyemang-Badu was dismissed for dissent.
But Udinese would have forced extra-time if not for another excellent save from Neto, who produced a flying stop to deny Luis Muriel and then kept out Nico Lopez's header from the rebound.
Domizzi became the second visiting player to see red for dissent moments later, and Fiorentina stood firm to set up a final clash with Roma or Napoli.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.