Twenty people were injured and 11 of them were in a critical condition, after the crash on a level crossing between Millas and Saint-Féliu-d’Amont.
The bus had picked up pupils, aged between 13 and 17, from a nearby secondary school before it was hit.
Pictures from the scene showed the bus split in two by the force of the crash.
Train operator SNCF said witnesses had reported seeing the barriers at the level crossing down at the time of the collision, although that was not confirmed.
The bus, which had left the Christian Bourquin College in Millas, was on the crossing when it was hit by the train, which was travelling from Perpignan at around 80km/h (50mph). Visibility was described as good.
A witness who was on the train told local news website l’Indépendant that “it was a very violent crash – it seemed as if the train would derail”. Some 30 people were on the regional train at the time.
Investigators are waiting to interview the woman driver of the bus who was slightly injured in the crash. Both drivers escaped serious injury.
Carole Delga, president of the Occitanie regional council, said the level crossing appeared to be in very good condition and had been upgraded recently. “The level crossing was very visible”, she said. SNCF said it involved an automatic barrier with standard signals and was not considered particularly dangerous.
But the grandmother of an injured 11-year-old girl who had been on the bus told a very different story. The girl had told her that the barrier had not come down but had remained raised. “The red lights that normally flash did not come on,” she said. “The (bus) driver went through and stopped half way, and that’s where the train crashed into it.”
Rail operator SNCF has modernised level crossings across France in recent years, following numerous accidents, the BBC’s Chris Bockman reports from Toulouse.
Prime Minister Edouard Philippe, who visited the scene, said the task of identifying the victims was proving extremely difficult.
“The priority at this stage is to give precise information to the families who are living through a period of anguish that we must make as short as possible”, he said.
Around 70 emergency workers and four helicopters were deployed as part of the rescue effort.
Transport Minister Elisabeth Borne called the crash a “terrible accident” and Education Minister Jean-Michel Blanquer was due to visit a counselling centre set up at the Christian Bourquin College on Friday.
A statement from the education minister’s office said he would visit “to support students, families, teachers and the entire educational community”.
In a tweet, French President Emmanuel Macron offered his condolences: “All my thoughts for the victims of this terrible accident involving a school bus, as well as their families. The state is fully mobilised to help them.” (Courtesy BBC)