Provincial governor Mohammad Reza Khabbaz told state television that the crash took place in Semnan province on the main line between Tehran and Iran's second city Mashhad.
An express train operating from Tabriz in the northwest to Mashhad had stopped, Khabbaz said, initially suggesting the cause could have been mechanical failure or extreme cold, although it was later put down to human error.
Two coaches on the express burst into flames when a passenger train behind smashed into the back of it at 7:50 am (0420 GMT) yesterday.
"One minute I was sleeping and the next I was being carried out of a coach on fire," one hospitalised passenger told state television.
More From This Section
Television broadcast images of a huge column of black smoke and flames shooting into the sky from coaches with their windows shattered, as firefighters battled the blaze and rescue workers searched for victims.
With the toll climbing throughout the day, Hossein Kulivand, head of Iran's emergency services, said late Friday that 44 people were killed and 82 hospitalised, of whom 17 were treated for light injuries and released.
"For some unknown reasons due to human fault, the train (from Semnan) was ordered to move and so it hit the other train from behind," said Mohsen Poor-Seyed Aghaie, the head of Iranian railways.
The province's Red Crescent director, Hassan Shokrollahi, said the remote location of the crash site, between Semnan and Damghan, the next major town, had complicated rescue efforts.
"Due to the difficulty of access, only our helicopter has managed to reach the scene," he said.
The injured were airlifted to hospitals in Semnan and Damghan.
The Tehran-to-Mashhad line was briefly closed to allow an investigation into the cause of the crash, said Sadegh Sokri, spokesman for Iran's railways.
President Hassan Rouhani called for "all technical, administrative and preventive measures to be taken to prevent the recurrence of such an accident".