The regional service carrying some 250 passengers was travelling at 140 kilometres an hour (87 mph) between Nimes and Montpellier when it hit a tree that had been uprooted by a hailstorm.
One of the seriously injured was rushed to hospital by helicopter in an “absolutely urgent” state, according to the head of local rescue services, Christophe Risdorfer.
Another 50 people suffered minor injuries or were in shock, he said.
National rail operator SNCF said in a statement: “At Lunel at around 3:45 pm, a TER (regional train) going at 140 kmh hit a tree which had fallen on to the track after extremely violent storms in the region.”
Around 80 rescue workers deployed to the scene, where SNCF said “access is very difficult.”