Iraqi government forces have taken control of the two largest oilfields near the disputed city of Kirkuk after Kurdish forces left the area.
Iraqi troops began a takeover of Kirkuk on Monday.
The actions come three weeks after a Kurdish referendum on independence, which was declared illegitimate by the central Iraqi government.
Voters in the Kurdish autonomous region and Kurdish-held areas overwhelmingly backed secession.
On Tuesday, Kurdish leader Massoud Barzani released a statement calling for peace and pledging to keep working towards independence.
“The loud voices you raised for the independence of Kurdistan, which you sent to all nations and world countries, will not be wasted now or ever,” he said, according to Irbil-based Rudaw news site.
He also blamed the loss of Kirkuk on internal disputes between Kurdish politicians.
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”.
Iraqi Prime Minister Haider al-Abadi said the latest operation was necessary to “protect the unity of the country”, having previously denounced the referendum as unconstitutional.
A sudden switch
By Orla Guerin, BBC News, Kirkuk
A large statute of a Peshmerga fighter still looms over the entrance to Kirkuk, but otherwise there’s little sign left of Kurdish control.
Iraqi forces are now firmly in command, manning new checkpoints on the road to the city.
The city was peaceful but Kurdish areas looked like a ghost town, with shops and homes sealed shut. The thousands who fled the Iraqi advance have not rushed back.
The few people we found on the streets spoke of uncertainty, and loss.
Some were angry at Peshmerga fighters for not defending the city. Others blamed the Kurdish leader, Massoud Barzani, for triggering the Iraqi takeover with last month’s independence vote.
A large poster of President Barzani has been damaged by fire. Locals told us Shia militia, officially controlled by Baghdad, set it alight when they entered the city. The burnt portrait is a potent symbol of his loss of authority here.
Why is Kirkuk at the heart of this crisis?
Kirkuk is an oil-rich province and its oilfields are vital to the Kurdish economy. It lies outside the official Kurdistan region and is 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) group militants swept across northern Iraq and the Iraqi army collapsed.
On Tuesday, Iraqi forces captured the Bai Hassan and Avana oilfields run by state-owned North Oil Company, north of Kirkuk.
A day earlier, troops had captured other key military bases and other oilfields, as well as the governor’s office. Forces pulled down the Kurdish flag, which had been flying alongside the Iraqi national flag, reports said.
Which areas are affected?
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 oilfield is located, security sources were quoted by Reuters news agency as saying.
Meanwhile, a Yazidi militia retook the town of Sinjar, in the northern Nineveh province, without violence.
Peshmerga forces had established control over Sinjar while battling 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
The United States said it was “very concerned” by reports of violence around Kirkuk and urged “calm”.
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”.