No one was seriously injured in the incident thanks to the interventions of police, who blockaded the vehicle and broke its windows allowing all the passengers to escape before flames destroyed the bus.
As he was detained, the driver said he was protesting migrant deaths in the Mediterranean, Commander Luca De Marchis told Sky TG24.
De Marchis added that the driver, an Italian citizen of Senegalese origin in his 40s, threatened the passengers, telling them that “no one would survive today” as he seized the bus carrying two middle-school classes in the province of Cremona.
Italian news agency ANSA quoted one of the students as saying the driver took all their phones and forced the adults to bind the students’ hands with cable ties, threatening to pour gas and set the bus on fire.
The student, whose name was not given, said a classmate managed to conceal his phone.
Authorities said an adult called emergency services, while one of the students called a parent, and they alerted authorities, who set up roadblocks.
The bus was intercepted around 40 kilometres from Milan by three police vehicles, which were able to force it into the guardrail, De Marchis said.
“While two officers kept the driver busy – he took a lighter and threatened to set fire to the vehicle with a gasoline canister on board – the others forced open the back door,” he added.
While the evacuation was underway, the driver lit the bus on fire.
The driver was being investigated on suspicion of kidnapping, intention to commit mass murder, arson and resisting law enforcement.
ANSA reported that the suspect had been convicted in 2007 and 2011 of drunken driving and sexual assault on a minor.
Sky TG24 reported that the driver had been employed by the bus company for 15 years without any work-related issues.
Fifty one students and three adults were on board the bus when it was hijacked, according to media reports.
Twelve children and one adult were taken to hospital for low-level smoke inhalation and the driver himself was being treated for burns.