The roof of the Rudolf Steiner school in Milan's eastern suburb of Lambrate burst into flames as workers attempted to coat it with tar to keep it waterproof on Tuesday morning, La Repubblica reported.
Reports suggest the tar was overheated before it was applied, leaving maintenance workers powerless to intervene as the roof began to smoulder and catch fire.
A video of the blaze can be seen below.
In total, 66 young children, who had been attending a summer school, and 55 members of staff were inside the building as it went up in flames. All were evacuated safely.
A squad of four fire engines was called to the scene and managed to extinguish the flames.
An acrid column of black smoke could be seen hanging in the skies above the city.
The smoke created problems in the surrounding neighbourhood as it blew over the train tracks in the nearby Lambrate station, forcing passengers on the platforms to head indoors.
Fortunately, the school, which during term-time teaches children of all ages, was not full as Italy's summer term concluded last week.