Update 4.25pm: Italian transport minister Graziano Delrio has announced an official inquiry into the accident.
Speaking from the scene, he said: "We must begin to understand the causes of this tragedy that has saddened the whole country.
"The crash was certainly violent. Extremely violent."
Update 2.45pm: At least 20 people have been killed in a head-on train crash in southern Italy.
Massimo Mazzilli said rescuers had just pulled a passenger out alive, and are poised to extract a second one.
On his Facebook page, Mr Mazzilli posted photos of the wreckage.
He wrote: "It's a disaster, as if an aeroplane fell. Rescue workers and civil protection are on the scene, but unfortunately there are victims."
Riccardo Zingaro, the chief of the local police in Andria, told Sky the crash was "a great tragedy".
"Some of the cars are completely crumpled and the rescuers are extracting people from the metal, many of them injured," he added.
Update 2.10pm: Some people may still be trapped in the wreckage following the collision on a single track in the province of Andria, with rescue operations continuing, officials said.
Italy's prime minister Matteo Renzi said the crash "is a moment of tears", and pledged not to stop until the cause has been determined.
Both trains involved belong to a Bari-based private rail company, Ferrotramviaria SpA.
Mr Renzi called the crash "a moment of tears" and pledged not to stop investigating until a cause has been determined.
Ferrotramviaria director general Massimo Nitti said the details of what went wrong are still to be determined, but added that it is clear "one of the trains wasn't supposed to be there" at the same time as the other.
A still photo of the crash showed cars crumpled together like an accordion and forced off the tracks at sharp angles. News reports said rescuers had pulled a small child alive from the rubble, while video images showed ambulances responding to the scene.
Giovanni De Siervo, of Italy's civil protection service, said: "The impact was significant, and we are now verifying the consequences."
The mayor of nearby Corato has described the scene as horrific.
An image of the crash site showed cars had been badly damaged and forced off the rails at sharp angles.
News reports said a seven-year-old boy had been pulled alive from the wreckage.
Local officials have also issued a request for blood donations.
Update 1.45pm: The death toll from today's head-on train crash in Italy has risen to 20, officials have said.
Update 12.21pm: At least a dozen people have been killed and scores more were injured after two trains collided head-on in southern Italy, firefighters say.
The incident is reported to have taken place on a single track near the town of Andria, in the Puglia region.
News reports said rescue workers are pulling injured people from the wreckage, including a small child.
Video images showed ambulances responding to the scene.
National police and carabinieri could not immediately provide details about the extent of the crash.
Italy's prime minister Matteo Renzi said the crash "is a moment of tears", and pledged not to stop until a cause is determined.
Both trains belong to a local private rail company, Ferrotramviaria SpA.
Italy's national rail service, Ferrovia dello Stato, identified the company in a statement, in which it also offered its condolences and support services.
Ferrotramviaria is a Bari-based company which connects the capital of Puglia with regional towns to the north and the airport, operating about 20 small electric trains.
Update 12.11pm: At least a dozen people have been killed in a train crash in southern Italy, firefighters say.
Two passenger trains have crashed head-on in southern Italy today.
Four people have reportedly died, with some media reports putting the death toll as high as 10.
Emergency services are at the scene near the town of Andria in the Puglia region.
National police and carabinieri could not immediately provide details about the extent of the incident.