Speaking to SAnews from the scene, provincial spokesperson for the Department of Safety and Security, Joseph Mabuza, said the crash occurred at about 7:30am at a level crossing between Hectorspruit and Malalane.
Mabuza said it appeared as if the truck, carrying farm workers, had failed to stop at the railway level crossing and the goods train collided into it.
He said at least 17 people had died, although they were still working at the scene and it was not yet clear how many people in total had been involved in the crash.
Mabuza said those who had been injured were taken to nearby hospitals.
Government has meanwhile conveyed its condolences to the families that have lost their loved ones in the accident.
"Government is deeply saddened by this incident. One death is one too many. Our prayers and thoughts are with families of the farmworkers ... we also wish the people who were injured in this accident a speedy recovery," Cabinet spokesperson Jimmy Manyi said.
He said government also commended the emergency service staff for their swift response to the scene and transporting of those injured to the nearest hospitals.