It was the first coordinated nationwide day of demonstrations in weeks of protests against illegal migrants who are accused by protest groups of taking work from locals.
A government multi-agency security body said there were 120 marches nationwide Tuesday and only 12 required law enforcement intervention.
Of the more than 900 people arrested, most were undocumented foreigners and South African looters, it said.
Police said they were investigating a murder in Johannesburg’s crime-ridden township of Alexandra after a man was shot while people looted a shop owned by a foreign national.
While thousands were estimated to have taken part in the protests, they were not as large and violent as had been expected, politics expert Henning Melber told AFP.
The organisers “were too overconfident of their popularity”, said governance expert Tendai Mbanje.
Without the backing of some minor political parties, there would have been even “fewer numbers”, he said.
Growing security fears have prompted several governments, including Ghana, Mozambique and Liberia, to evacuate their citizens from South Africa.
While most of those repatriated are Malawians, thousands who had gathered at a temporary camp in Durban were transferred to a holding area more than 1,000 kilometres (620 miles) away near South Africa’s border with Zimbabwe.
One of the buses, carrying 65 passengers, crashed near the Beitbridge border post, killing the driver and injuring seven others, South Africa’s Border Management Authority said.
In Durban, people continued to arrive at the camp to ask for help to leave a day after the demonstrations.
Nelson Chona, 32, who owned a tuck-shop in a township outside Durban, said he delayed leaving because he needed to “secure some money”.
“The landlord said I should leave or else his house might be destroyed,” he told AFP. “I feel safer here than I am where I used to stay.”
