The victim, his wife and another man were all shot by the 35-year-old suspect whom police say "simply started shooting at everyone in sight."
They have not been named.
Captain Shooz Magudulela of the Newcastle police said other passengers overpowered the shooter and alerted police, who arrested him when the train stopped in Newcastle.
"He is in custody and will be charged with one count of murder and two of attempted murder," said Magudulela.
Sabelo Buthelezi, spokesman for the Newcastle Provincial Hospital, said the woman was in a stable condition and the other victim was taken to the Madadeni Hospital.
"The second patient was shot in the stomach and he was transferred for treatment," he said.
The Shosholoza Meyl promised increased security on its trains after the incident.
"We are reviewing all security arrangements in our environment, and are looking at putting in place metal detectors as well as expediting the deployment of Railway Police onboard the trains," said spokesman Viwe Mlenzana, adding a mobile police coach would be introduced on "targeted trains to ensure the safety of our passengers and to fight crime."
Mlenzana said they had arranged voluntary counselling sessions for all passengers who were in the coach where the incident occurred.