A spokesman for the emergency ministry said at least 32 people suffered severe burns and shrapnel wounds in the blast in Pyatigorsk on Wednesday.
Three people were killed on the spot and one died later in hospital, the emergency ministry said.
"Everything shook from side to side. All that I can remember is lots of dust all over the place and everything shaking," a dazed Ilya Kamyshanov said from his hospital bed in the Stavropol region.
The ITAR-TASS news agency said two homemade explosive devices had been planted under the rails on the track rather than on the train itself, as initial reports had suggested.
It added police had arrested a badly injured man who tried to flee the scene of the attack and who they suspected may have set off the explosions.
Officials did not immediately link the attack to Chechen rebels although a wave of bombings has struck Russia ahead of an October 5 presidential poll in the republic.
The elections were called by President Vladimir Putin - who launched the Chechen offensive in October 1999 - in a bid to impose a pro-Russia administration on Chechnya.
Vladimir Putin launched the
Chechnya war in 1999
But the Chechens have vowed not to recognise the vote.
There were no initial claims of responsibility for the attack.
"We would like to point out that on previous occasions (Russian security officials) have tried to blame the Chechen rebels for attacks that they actually staged themselves," the Chechen Internet site Kavkaz Center said.
Around 80,000 Russian troops are fighting an estimated 2000 to 3000 rebels in the mainly Muslim republic.
The official Russian death toll from the war is estimated at around 5000 - although rights groups suggest the actual casualty figure may be three times higher.