Russia has claimed to have taken control of the southern Ukrainian city of Mariupol, despite hundreds of Ukrainian soldiers remaining in a steelworks factory which Putin ordered to be sealed off.
Mariupol has faced heavy bombardment since the early stages of Russia's invasion, with thousands losing access to food, water and electricity.
Last week Mariupol Mayor Vadym Boychenko said more than 10,000 civilians had died in the Russian siege of his city, and that the death toll could surpass 20,000.
Watch: Ukraine war: Putin orders blockade of last Mariupol stronghold so that 'a fly cannot pass through'
Russian defence minister Sergey Shoigu said at a meeting with Putin in Moscow: "Mariupol has been liberated by the Armed Forces of the Russian Federation and the forces of the People's Militia of the Donetsk People's Republic."
Shoigu called Mariupol "the capital of nationalist Azov battalion", referring to the far-right group fighting in the ranks of Ukraine's army.
He called the city "a powerful, fortified area, equipped with a large number of heavy weapons and military equipment".
Shoigu alleged that the Ukrainian forces were using civilians as human shields, but the Russian side "took all measures to preserve the lives of civilians".
Ukrainian authorities have not confirmed the Russian claims.
On Thursday, Mayor of Mariupol, Vadym Boychenko, said that the 100,000 people who are left in the city are too scared to leave.
He said: ""Everything is under control of our so-called 'liberators,' but in fact occupiers who destroyed our city and who are terrorising the 100,000 inhabitants"
He added: "The occupier is preventing people from leaving.
"It's a genocide, it's a ghetto that's been established."
Russian forces have launched a relentless bombing campaign in the southern port, and had been planning to take over the strategically important Azovstal steel works by Thursday.
However, Putin gave the order to Shoigu, who had previously told Putin that more than 2,000 Ukrainian fighters were still holed up in the sprawling underground complex.
"I consider the proposed storming of the industrial zone unnecessary," Putin told Shoigu in a televised meeting at the Kremlin. "I order you to cancel it."
Watch: Drone footage shows devastation of Mariupol
Putin said his decision not to storm the Azovstal plant was motivated by the desire to safeguard the lives of Russian soldiers.
"There is no need to climb into these catacombs and crawl underground through these industrial facilities," he said.
"Block off this industrial area so that a fly cannot not pass through."
The decision not to storm the Azovstal steel plant - after days of ultimatums to its defenders to surrender or die - allowed Putin to claim his first big prize since his forces were driven out of northern Ukraine last month.
But it falls short of the unambiguous victory Moscow has sought after months of brutal combat in a city reduced to rubble.
"They physically cannot take Azovstal, they have understood this, they have taken huge losses there," Ukrainian presidential adviser Oleksiy Arestovych told a briefing.
"Our defenders continue to hold it."
Putin also called on the remaining Ukrainian fighters in Azovstal who had not yet surrendered, saying Russia would treat them with respect and would provide medical assistance to those injured.
Mariupol has been the site of a number of alleged atrocities since Putin ordered his troops to invade on 24 February.
Mariupol city council officials claimed a Russian airstrike hit the Mariupol Drama Theatre where hundreds of people had been sheltering on 16 March.
Putin’s forces bombed the makeshift shelter being used by up to 1,200 civilians – including sick children – in a deliberate attack, Ukrainian authorities claimed.
Azovstal factory has previously been described as a “city under a city” thanks to the vast network of underground shelters and tunnels which run underneath.
The plant covers around four miles and has so far proven a challenge for Russian forces to take over.
Drone footage has shown a bridge leading to the plant has been bombed, and the road leading to it littered with cars.
On Wednesday, Ramzan Kadyrov, the head of Russia's republic of Chechnya, whose forces have been fighting in Ukraine, said Putin's forces would have control of Azovstal "by lunchtime" the following day.
He said: "Before lunchtime, or after lunch, Azovstal will be completely under the control of the forces of the Russian Federation."
It comes as the UK's Ministry of Defence warned Russia could intensify their campaign to show some victory on their national Victory Day celebrations.
A spokesperson tweeted in an update: "Russia likely desires to demonstrate significant successes ahead of their annual 9th May Victory Day celebrations. This could affect how quickly and forcefully they attempt to conduct operations in the run-up to this date."
Mariupol would be the biggest city to be seized by Russia since it invaded Ukraine eight weeks ago in an attack that has taken longer than some military analysts expected, seen over five million people flee abroad and turned cities to rubble.