Moscow said on Friday that it had completed its withdrawal from Kherson without losing a single soldier, amid reports of Russian soldiers abandoning uniforms, and some drowning, as they tried to flee.
In a statement early in the day, Russia said the retreat of its forces to the eastern side of the Dnipro River was finished, two days after Moscow announced the surprise move.
"Today is a historic day. We are in the process of taking Kherson back. As of now, our defenders are on the outskirts of the city. But special units are already in the city," said President Volodymyr Zelenskyy.
Serhiy Khlan, a member of Ukraine's regional council for Kherson, said the regional capital Kherson was now almost fully under the control of Ukrainian forces, with a Ukrainian flag hoisted over its administrative building by civilians.
A large number of Russian soldiers drowned in the river trying to escape and others had changed into civilian clothing, he said.
He advised residents not to leave their homes while searches continued for any remaining Russian troops.
Natalia Humeniuk, a spokesperson for the Ukrainian military's southern command, said Russian troops "have been changing into civilian clothes for two weeks".
"It means saboteur operations cannot be ruled out," she said in a separate briefing.
Pro-Russian war bloggers reported late on Thursday that Russian forces crossing the river were coming under heavy fire from Ukrainian forces.
The Russian ministry said Ukrainian forces had struck Dnipro River crossings five times overnight with US-supplied Himars rocket systems.
Ukrainian troops are continuing their advance in the south, where they have reclaimed dozens of settlements in recent weeks.
But Russia has kept up missile strikes elsewhere, hitting a residential building in Mykolaiv overnight, killing six people.
In a message on the Telegram messaging app, Mayor Oleksandr Senkevych said rescuers were digging through the debris for survivors.
Photographs posted by Mr Senkevych showed a gaping hole in a multistorey building and emergency workers combing through a mound of rubble.
The strikes occurred at about 3am, about two hours before the military claimed to have completed its withdrawal of Kherson.
The military said: “At 5am Moscow time today, the redeployment of Russian units to the left [eastern] bank of the Dnipro River was completed.
“During the redeployment, not a single piece of military hardware or weaponry was left behind.
“All Russian service personnel were moved across, there were no losses of men, hardware or materiel of the Russian forces group.”
The retreat had been expected to take a week.
On Thursday, Ukraine's Defence Minister Oleksii Reznikov estimated that Russia still had 40,000 troops in the Kherson region, and said intelligence showed its forces were still in and around the city.
Russia announced on Wednesday that it would withdraw from the west bank of the Dnipro, which includes Kherson city.
It is the third major Russian retreat of the war, after Moscow's forces in March were driven from the outskirts of the capital Kyiv and ousted from the north-eastern region of Kharkiv in September.
Kherson province is one of four that Russian President Vladimir Putin claimed to have annexed from Ukraine in late September.
The loss of the regional capital appears to end dreams expressed by some Russians of seizing Ukraine's entire Black Sea coast, although Kremlin spokesman Dmitry Peskov said the region's annexed status remained unchanged.
President Zelenskyy said in an overnight address that Ukrainian forces had liberated 41 settlements as they advanced through the south, indicating one of the swiftest and most dramatic shifts of control in almost nine months of war.
Ukraine said it was keeping its latest movements under wraps but listed 12 settlements it said had been freed as of Wednesday: one of them, Blagodatne, is about 30 kilometres from the centre of Kherson, a port at the mouth of the Dnipro River.
At the entrance of the village, Ukrainian troops looked over a large stockpile of 120mm mortar shells abandoned in a dilapidated warehouse by the Russians.
Relieved villagers recounted life under occupation, saying about 100 Russians had held the village for eight months. The Russians had withdrawn without a fight on Wednesday and Ukrainian troops moved in on Thursday, they said.
The Russians had killed a man who approached too close to their trenches and taken away two other men and a young woman whose fates are unknown, the villagers said.
"For the first two months they came in and were extremely aggressive," said Serhii Kalko, 43. He said Russian soldiers fired in the air as they walked down the streets.
The Russian troops had also broken into vacant homes and looted them, removing furniture, televisions, stoves and refrigerators, the villagers said.
"The Russians were stealing everything. Everything they could take they took. We tried not to be in their sights," a woman named Halyna, 50, said. Only about 60 of approximately 1,000 residents had remained, she said.
Wrecked buildings and a destroyed lorry on a motorway leading to Kherson marked the former front line in Posad Pokrovskiy, 12km back up the motorway.
A Ukrainian flag fluttered above a bus stop pitted with bullet holes.
Homes and buildings on both sides of the road were gutted by shellfire and shattered branches hung from the trunks of trees lining the motorway. Ukrainian soldiers manned checkpoints waving at passing Ukrainian military vehicles.