The bus was travelling in a tunnel along the northbound lane of the Superstrada 36, near the Lombard town of Lierna, on the way to a summer camp in Livigno.
The driver, Mauro Mascetti, realised something was wrong and managed to evacuate the children from the bus before it exploded into flames, engulfing and completely gutting the vehicle.
Five fire brigade teams from the Lecco and Bellano departments arrived on scene to extinguish the flames and move the bus to a safe area.
The fire service tweeted that passengers on board were unharmed and that teams were working to clear the road.
No ambulances were needed, but seven of the 25 children – aged between 14 and 16 – were taken to hospital for examination, according to Italian news agency ANSA.
They are believed to have inhaled smoke, but their condition is not a cause for concern.
The bus, which was owned by the Como Red Cross, was serviced in June, according to a statement.
It is believed the bus caught fire after a tyre exploded.
Police praised the driver for his quick reactions, which they say averted a tragedy.