Giacomo Bonaventura set Italy on their way with his first international goal and Domenico Berardi added two more either side of halftime.
Substitute Davide Frattesi netted in stoppage time, his third goal in two games for Italy.
The Azzurri moved to within three points of Group C leaders England, who they play on Tuesday at Wembley.
Ukraine, who have played a match more, are level on points with Italy after beating North Macedonia 2-0 on Saturday.
Italy’s preparations for the match in Bari had been interrupted when police questioned players Sandro Tonali and Nicolo Zaniolo at the national team’s Coverciano training centre in a betting investigation.
The Premier League stars both left the team camp.
AAP