The incident occurred at around 6.45pm when a 78-year-old attempted to drive his car across the tracks at the designated crossing point, said Schwyz police in a statement.
Hampered by thick snow on the ground, his car became stuck in the tracks.
Unable to extricate the car and with the barriers starting to close, the driver got out and ran towards the approaching train to warn it.
Despite applying the emergency brake the train driver was unable to halt the train, which smashed into the car and pushed it 150m, said police.
No one was hurt in the incident.
The train line between Arth-Goldau and Rothenthurm was closed for three hours and replacement buses laid on for passengers.