Iraqi government forces have taken control of the two largest oil fields near the disputed city of Kirkuk after Kurdish forces left the area.
A string of oilfields – vital to the Kurdish economy – have been taken by Iraqi troops since Monday.
Troops have taken over sites, including Kirkuk city, in the wake of a Kurdish referendum on independence declared illegitimate by the central government.
Kurdish forces have also left an area on the border with Iran, reports say.
Iraqi troops are also preparing to take control of the Khanaqin area, where a small oil field is located, security sources were quoted by Reuters news agency as saying.
It comes three weeks after voters in the Kurdish autonomous region and Kurdish-held areas overwhelmingly backed secession from Iraq.
Iraqi Prime Minister Haider al-Abadi had denounced the vote as unconstitutional.
Why is Kirkuk at the heart of this crisis?
Kirkuk is an oil-rich province outside the official Kurdistan region but claimed by both the Kurds and the central government. It is thought to have a Kurdish majority, but its provincial capital also has large Arab and Turkmen populations.
Kurdish Peshmerga forces took control of much of the province in 2014, when Islamic State (IS) militants swept across northern Iraq and the Iraq army collapsed.
On Tuesday, Iraqi forces captured the Bai Hassan and Avana oil fields run by state-owned North Oil Company north of Kirkuk.
A day earlier, troops had captured other key military bases and oil fields as well as the governor’s office. Forces pulled down the Kurdish flag which had been flying alongside the Iraqi national flag, reports said.
Meanwhile, a Yazidi militia retook the town of Sinjar in the northern Nineveh province, also without violence.
Peshmerga forces had established control over Sinjar while battling so-called Islamic State (IS). The town was the site of one of the group’s worst atrocities, when thousands of Yazidis were killed and enslaved after the jihadists seized control in 2014.
Territorial control before 16 Oct 2017
What is Baghdad saying?
Mr Abadi said in a statement on Monday that the operation in Kirkuk was necessary to “protect the unity of the country, which was in danger of partition” because of the referendum.
“We call upon all citizens to co-operate with our heroic armed forces, which are committed to our strict directives to protect civilians in the first place, and to impose security and order, and to protect state installations and institutions,” he added.
The United States said it was “very concerned” by reports of violence around Kirkuk and urged “calm”.
The speed with which Iraqi forces reached the centre of Kirkuk has led the two main armed Kurdish parties to accuse each other of “betrayal”.
The Peshmerga General Command, which is led by President Massoud Barzani of the ruling Kurdistan Democratic Party (KDP), accused officials from the rival Patriotic Union of Kurdistan (PUK) of aiding “the plot against the people of Kurdistan”.
The PUK denied being part of ordering any withdrawal, saying dozens of their fighters had been killed and hurt, but noted “not even one KDP Peshmerga has been martyred as of yet in the fighting in Kirkuk”.
Meanwhile Turkey, which fears Kurdish independence moves in Iraq could fuel similar demands among its own Kurdish minority, praised Baghdad, saying it was “ready for any form of co-operation with the Iraqi government in order to end the PKK presence in Iraqi territory”.
The PKK – or Kurdistan Workers’ Party – is a Turkish-Kurdish rebel group which has been fighting for autonomy since the 1980s. It is considered a terrorist group by Turkey as well as by the EU and US.