Ukrainian soldiers have been welcomed into Kherson by jubilant residents, after Russia said it had fully withdrawn from the key southern city.
Video showed locals on the streets, flying Ukraine’s national flag and chanting as Kyiv’s troops arrived.
Some sang patriotic songs around a large camp fire well into the night.
Kherson was the only regional capital taken by Russia after February’s invasion. The retreat has been seen as one of its biggest setbacks of the war.
Moscow said 30,000 personnel had been taken out of the area – as well as around 5,000 pieces of military hardware, weaponry and other assets.
The White House hailed what it called an “extraordinary victory”, while Ukrainian President Zelensky called it an “historic day”.
But Ukraine’s foreign minister said the “war goes on”. Speaking in Cambodia on the sidelines of a summit of Asian countries, Dmytro Kuleba said: “We are winning battles on the ground. But the war continues.”
An evening update on Friday from the Ukrainian side said troops had pushed as far forwards as the western bank of the Dnipro river.
Images also emerged showing that the main river crossing – the Antonivsky Bridge – had partially collapsed. It remains unclear how the damage was caused.
The Russian troops who occupied Kherson are thought to be taking up new positions on the eastern side of the river.
A Kherson resident described his “overwhelming” emotions as people emerged singing and dancing onto the streets.
Alexei Sandakov revealed his full name to the BBC, having previously referred to himself only as “Jimmy”. He said Kherson was “free now. It’s different. Everyone is crying since this morning”.
He added that “everybody wanted to embrace” the arriving Ukrainian soldiers.
The city’s change of control followed a rapid Ukrainian counter-offensive in recent months, in which Kyiv said it had recaptured 41 settlements near Kherson.
In his evening address, President Zelensky said the people of Kherson “were waiting” and “never gave up on Ukraine”.
He added that residents had been working to remove “any traces of the occupiers’ stay” from the streets, including Russian symbols.
Meanwhile, a spokesman for Russian President Vladimir Putin denied the move represented a humiliating defeat.
For weeks, the Kremlin has regarded Kherson and its locality as its own territory, after running so-called “referendums” in four occupied provinces of east and south Ukraine.
These votes were widely discredited by the international community, and Ukraine kept up its efforts to take back the affected land.
Russia’s withdrawal from Kherson was announced on Wednesday by the country’s commander in Ukraine, who said it was no longer possible to supply the city.
Although there was little evidence of any Russian retreat on Thursday, Ukraine claimed advances of up to 7km on two axes as its troops pushed forwards.
Events continued to move quickly on Friday. Initial reports that the Russians had abandoned Kherson came from locals.
Crowds of flag-waving civilians were later filmed in Freedom Square, greeting Kyiv’s soldiers and chanting: “Glory to the Armed Forces of Ukraine!”
On Friday afternoon, Alexei Sandakov appeared to be still adapting to the new situation on the ground, commenting: “No-one is going to sleep tonight.”
The local television service in Kherson was also reconnected to Ukrainian broadcasts.
Shortly after 16:00 local time (14:00 GMT), a Ukrainian official said his troops were “almost fully in control” of Kherson, as well as the wider tranche of land to the west of the Dnipro river.
Troops were treading carefully amid fears of Russian traps, said Yuriy Sak, an adviser to the defence minister.
Mr Sak told the BBC that some enemy soldiers were believed to be lingering in the city, had cast off their uniforms and were trying to disguise themselves as civilians. He urged them to surrender.
He hailed Kherson’s recapture as a major win comparable to his side’s successful efforts earlier in the war to drive Russian troops away from other urban centres – namely Kyiv, Chernihiv and Kharkiv.
But he said he remained “cautious”, citing the possibility of Russian retaliations, and referring to a missile attack in Mykolaiv earlier in the day, which allegedly killed at least seven people.
Mr Sak vowed to retake further territory from Russia, including land that has been occupied by the neighbouring country since 2014.
In Russia, the exit from Kherson has been played down by officials and styled as a “redeployment” – despite criticism from pro-war commentators on social media.
Mr Putin was notably absent from Wednesday’s announcement by the military that Russian forces were leaving the city they had snatched, virtually unopposed, in the early stages of the war. BBC News