The train was the regular EuroCity 279 service travelling from Prague to Budapest via Bratislava.
It was operated by a Czech Railways locomotive pulling Slovak Railways carriages.
Czech Railways praised the actions of its driver, who it said had prevented injuries to train passengers by taking prompt action to avoid derailment.
He is understood to have jumped into the control room seconds before impact, and suffered burns in the subsequent fire.
According to an Arriva spokeswoman quoted in the Slovak media, the bus driver had over thirty years experience.
Local media published video footage of passengers carrying luggage alongside a train partially in flames, as thick grey smoke rose to the sky.
According to unconfirmed Slovak media reports, the level crossing had lights and barriers but these had been left out of action by a recent storm.
It is unclear whether they were working properly at the time of the collision.
Slovak Railways has not commented on the claims.
Interior Minister Matus Sutaj Estok, who attended the scene, wrote on social media that “a little inattention is enough and life can change in a hundredth of a second – forever”.
“Let this sad event be a reminder for all of us to pay attention to safety on the roads and at railroad crossings.”
Passenger Katarina Molnarova told AFP that just as she left Nove Zamky station she felt and heard a crash and bang.
“After a couple of minutes we were able to get off,” the 43-year-old cosmetician said.
“We saw that the frontal part of the train was on fire”.
She added that there was “no screaming or panicking” and that passengers took their luggage and walked to the road.
Five ambulances and three air ambulances were dispatched to the scene, emergency services said.