The bus had picked up pupils, aged between 13 and 17, from a nearby secondary school before it was hit.
Twenty people were injured and 10 of them were in a critical condition, after the crash on a level crossing between Millas and Saint-Féliu-d'Amont.