One person was killed and several others were injured when two trains collided near the Horizon View train station in Roodepoort, west of Johannesburg, on Wednesday evening.
Main Line Passenger Services management said the Premier Classe passenger train collided with a stationary goods train on Wednesday at about 9.53pm.
The train was travelling from Cape Town with 36 passengers and 14 staff members on board.
Five passengers got off in Kimberley before the crash.
ER24 spokesperson Russel Meiring said a man and an elderly woman were found trapped inside a carriage of the passenger train.
The man sustained multiple injuries and was declared dead on the scene.
Meiring said rescue teams worked for more than two hours to free the entrapped woman. She was airlifted to Milpark hospital in a critical condition.
The other injured passengers were taken to Krugersdorp hospital.
Alternative transport was arranged for the rest of the passengers.
Metrorail services will be affected along the Randfontein to Johannesburg lines.
Commuters are advised to use alternative transport.