Emergency services raced to extract people from the wreckage of smashed carriages thrown across a single track into olive groves near the town of Andria, in what one witness described as an “apocalyptic scene”.
Coffins were taken to the site near the city of Bari to carry away the first of the dead as 200 rescue workers sifted through the wreckage in temperatures reaching 40 degrees Celsius (104 degrees Fahrenheit)
“I saw dead people, others who were begging for help, people crying. The worst scene of my life,” one policeman told journalists.
Vito Montanaro, director general of the Bari heath authority, said 20 people had died and 35 were injured, 18 of them critically.
“It was an enormous accident, a very violent crash,” said Transport Minister Graziano Delrio, who arrived on at the scene along with two ministry inspectors to aid the investigation.
The collision happened on a bend in the track in open countryside and flung the front carriages of both trains into olive groves bordering the line, slinging bits of metal from the wreckage.
“It’s an apocalyptic scene, it was hard not to vomit on first sight,” said local journalist Lucia Olivieri who works for Andria Live.it, adding that rescue workers feared people may still be trapped.
Riccardo Zingaro, head of traffic police in Andria, said the yellow and blue carriages of the commuter trains were “utterly crumpled”.
Local hospitals issued a request on social networks for blood donors to come forward to help the injured.
Paramedics set up an impromptu medical centre among the olive trees, with three helicopters airlifting out the most seriously hurt victims, including one young boy. There were also psychologists on hand to help survivors.
Many of the passengers on one of the trains had been students heading to lessons at the University of Bari and travellers on their way to Bari international airport.
Relatives had arrived at the scene looking for news of their loved ones.
‘Moment for tears’
Investigators said at least one of the trains had been travelling very fast, and it was possible the collision was caused by human error.
One of the four-carriage trains was supposed to have waited at a station for a green light before heading down the single track between the towns of Corato and Andria.
Prime Minister Matteo Renzi interrupted a speech in Milan to say the country would “not stop until we know what happened”. “This is a moment for tears in which we need to work to recover the victims and wounded,” he added.
Renzi said he was returning immediately to Rome following the collision.
The trains were operated by private railway company Ferrotramviaria rather than the national railway operator Trenitalia.
Italy’s last major transport incident in 2013 left 38 people dead after a coach ran off the road and plunged into a viaduct.
In 2009, 29 people died after a train carrying gas derailed, sparking an explosion.