After in-form Fiorentina winger Mohamed Salah had a goal disallowed, the visitors opened the scoring in the 19th minute when Alessandro Matri stabbed home after the ball had fallen to him from Alvaro Morata’s blocked shot.
Juve doubled their lead on the stroke of half-time when Roberto Pereyra scored from the rebound after Morata’s strike had been parried by Fiorentina goalkeeper Neto.
And there would be no way back for the Viola when an unmarked Leonardo Bonucci volleyed home from a corner in the 59th minute.
Juve’s night was soured slightly when Morata was harshly sent off near full-time after a challenge on Alessandro Diamanti.
However, they comfortably held on and will go in search of their first Coppa Italia crown since 1995.