French Prime Minister Édouard Philippe, who visited the scene said that it was hard to identify the victims.
The bus, which was carrying pupils home from school, was on the level crossing when it was hit by the train, which was travelling from Perpignan at around 80km/h.
Mr Philippe said on Thursday night that the "circumstances of this bad drama are still undetermined".
Seven people are said to have been seriously injured.
"The priority at this stage is to be able to give precise information to the families", Philippe said. It was carrying around 20 children aged between 11 and 15, the local authority said.
"Several witnesses confirmed that the barrier had come down, so it worked". "We need to be very careful".
"The coach was really cut in two by the train as it passed", he added, speaking of the. France's SNCF national rail authority said witnesses described the crossing gates as functioning properly.
French President Emmanuel Macron tweeted: "All my thoughts go to the victims of this awful accident and their families".
Prime Minister Edouard Philippe and Transport Minister Elisabeth Borne were on their way to the scene from a meeting in the south-central city of Cahors. Rescue and the state's services are fully mobilized.
The Pyrenees-Orientales authority tweeted that the collision occurred Thursday afternoon on a railway crossing at a small town some 9 miles west of Perpignan, close to the border with Spain. The Education Minister's office released a statement saying Jean-Michel Blanquer would visit to support students, teachers, families and the educational community.
A medical-psychological aid centre was set up in Millas.
In 2013, a train derailment in central France killed at least six people. A signalling defect was blamed for that crash.