Gilardino's 38th minute goal lifted Cesare Prandelli's side to 17 points at the top of Group B, seven clear of second-place Bulgaria with three games to play.
In the second half Italy captain Gianluigi Buffon twice had to be at his best to save his side from a potentially costly draw, with a wonder save three minutes after the break somehow keeping out what looked to be a certain equaliser from Ivelin Popov.
The Azzurri are also now eight points ahead of the Czech Republic, who lie third on nine points after conceding an injury time goal to lose 2-1 at home to Armenia.
If Italy beat the Czechs on Tuesday they will directly qualify for the finals in Brazil.
Bulgaria, who travel to bottom side Malta, are locked in a four-way battle for second place and a place in the playoffs with the Czechs, Armenia and Denmark, who are all on nine points.