Iraqi forces have advanced further in Ramadi on Monday (local time), driving Islamic State (IS) militants out of the centre and seizing the main government complex.
Military officials say insurgents are still holding on to pockets of the city west of Baghdad.
Ramadi, capital of the Anbar province, had fallen to IS forces in May – a major setback in the US-backed campaign. Ramadi and nearby Fallujah, an IS stronghold, have seen some of the heaviest fighting of the conflict in Iraq.
Iraqi forces have in recent months increased offensives to take back Ramadi, and advanced into parts of the city earlier this month. Progress has been slowed by snipers, booby traps and bridges destroyed by IS to cut off access to the city centre.
Brigadier General Ahmed al-Belawi told the Associated Press IS militants had ceased firing from inside the government complex around 8am Monday, with troops circling in and clearing booby traps.
Hours later, Brigadier General Yahya Rasool announced Ramadi had been "fully liberated" from IS control.
However, parts of the city still remain under IS control. General Ismail al-Mahlawi, head of military operations in Anbar, says fighters still control around 30 percent of the city.
"The troops only entered the government complex," says Gen al-Mahlawi. "We can't say that Ramadi is fully liberated. There are still neighbourhoods under their control, and there are still pockets of resistance."
Iraqi state television broadcast images of Iraqi soldiers waving the Iraqi flag and brandishing machine guns, dancing inside the government complex. Soldiers slaughtered sheep in celebration in nearby damaged buildings.
Brig Gen al-Belawi says fighters remain mainly in the eastern neighbourhoods of Sijariya and Sufiya.
The victory is expected to lift the morale of Iraqi forces, who were shaken by the fall of Ramadi in May.
Iraqi Prime Minister Haider al-Abadi has praised the advance, saying it "fulfilled the promise to defeat Daesh [IS] in Ramadi", adding 2016 would be "the year of the final victory and the end of the existence of Daesh on Iraqi territory".
IS still controls much of northern and western Iraq, and large amounts of territory in neighbouring Syria. It has declared a caliphate in areas under its control, imposing strict and violent interpretation of Islamic law.