Mpumalanga Community Safety, Security and Liaison spokesperson Joseph Mabuza said the 32-year-old driver was arrested shortly after the accident on Friday.
"The driver was arrested on Friday and has been charged with 25 charges of murder. He will appear before the Malelane Periodical Magistrate Court tomorrow," he said.
The crash, which claimed the lives of 25 people, occurred when the truck driver was trying to cross a level railway crossing at Hectorspruit between Malalane and Komatipoort. The truck was carrying 49 farm workers when it was hit by the cargo train carrying coal.
Mabuza said 24 people who were injured in the accident were still receiving medical treatment at local hospitals.
President Jacob Zuma on Friday afternoon expressed his shock, sadness and outrage at the death of 25 people.
"We are deeply saddened at the loss of the lives of so many people, most of whom are likely to be breadwinners. The pain felt by the families is immeasurable," he said.
"We reiterate that it is important for drivers to exercise maximum caution at all times, especially when transporting passengers.
"On behalf of government and the people of South Africa, we would like to extend our deepest condolences to the bereaved families and wish a speedy recovery to all those who were injured." said Zuma.
He urged the law enforcement authorities to get to the bottom of the crash and take appropriate action in case of wrongdoing on anyone's part.
Mabuza said a memorial service for the victims, who were mainly from the Nkomazi area, has been scheduled for Thursday, in a venue yet to be announced.