A train collision in Johannesburg's Soweto township has injured 857 commuters, two of them critically, but killed no-one, the South African rail operator said.

"We have around 857 people that were injured," Metrorail acting regional manager Douglas Chauke said.

"Out of the 857 that were injured, only two were critically injured; the rest were minor injuries."

He said the coaches remained on the tracks and most of the injured had already been discharged from hospital.

"The train didn't derail. There were actually minor damages to the infrastructure and also the train itself was damaged, but not seriously," he said.

The accident occurred about 6:00pm (local time) when a passenger train smashed into a stationary train during the peak rush hour period.

The cause of the accident is being investigated by the Railway Safety Regulator, which said the passenger train was travelling toward the Orlando township when it hit a stationary Soweto Business Express train.

"The injured were assisted by emergency services at scene and taken to nearby hospitals," the regulator said in a statement.

The number of people onboard the train was unknown but Metorail's carrying capacity ranges between 2,000 and 2,500 people.

- AFP