The town, already in ruins after repeatedly swapping hands since South Sudan's civil war broke out in December 2013, is the state capital of Upper Nile and the gateway to the country's last remaining major oil fields.
Speaking to reporters in the capital Juba, South Sudan army spokesman Philip Aguer said government troops loyal to President Salva Kiir "completed their control of Malakal town" earlier Monday after several days of fighting during which "whole enemy force was destroyed".
There was no immediate reaction from the rebels, who attacked the town 10 days ago after a pro-government militia leader changed sides.
The civil war in the world's youngest nation began in December 2013, when South Sudan's President Salva Kiir accused his former deputy Riek Machar of attempting a coup, setting off a cycle of retaliatory killings across the country.
More From This Section
South Sudanese government forces launched a major assault on rebel-held areas in the north in late April, in what has been described as one of the heaviest offensives in the 17-month long civil war.
Washington's envoy to the UN, Samantha Power, said last week that the US was working with the Security Council to gather evidence for possible sanctions. On Saturday the African Union also demanded sanctions and an arms embargo be imposed on South Sudan's warring leaders.
Last year the European Union and United States placed asset freezes and travel bans on commanders from both sides, but the sanctions have had little if any impact on the worsening war.