The recapture of Malakal comes two days after the government retook the key city of Bor, capital of Jonglei state.
Thousands were killed and a half million civilians became refugees in six weeks of fighting between troops loyal to President Salva Kiir and rebels loyal to former Deputy President Riek Machar, the Middle East News Agency reported Monday.
The United Nations said atrocities, including war crimes, have been committed on both sides, and Sunday reported soldiers attempted to forcefully enter a refugee camp sheltering thousands of civilians. U.N. human rights envoy Ivan Simonovic detailed reports of mass killings, sexual violence and widespread destruction in South Sudan's oil-rich Jonglei state
Rebels attacked Malakal last week. The city has changed hands three times in the conflict and has been badly damaged, the news agency said.
South Sudan erupted Dec. 15 in what Kiir claimed was a coup attempt by Machar, who was dismissed by Kiir in July. The fighting has spiraled into ethnic killings between the Dinka people, loyal to Kiir, and the Nuer, loyal to Machar.