Paris (AFP) - Russia on Thursday claimed to have taken control of the strategic Ukrainian port of Mariupol after more than seven weeks of fighting that reduced most of the besieged city to rubble.
"Mariupol has been liberated," Defence Minister Sergei Shoigu told President Vladimir Putin during a televised meeting.
Around 2,000 Ukrainian fighters are continuing to hold out at their last redoubt, the sprawling Azovstal steelworks, he said.
Located on the Sea of Azov, the city has been a key prize for Russia in its bid to join up the annexed Crimea peninsula to the west with territory held by pro-Russian rebels in the east.
A timeline:
Pounded, encircled
On March 2, a week after the Russian invasion of Ukraine, Moscow's artillery begins pounding Mariupol, a predominantly Russian-speaking city of 441,000 inhabitants some 55 kilometres (35 miles) from the Russian border and 85 kilometres from the pro-Russia separatist stronghold of Donetsk.
The mayor accuses Russian forces and pro-Russian fighters of seeking to "impose a blockade" by cutting off food supplies and vital infrastructure, including water, electricity and heating.
Maternity ward bombed
On March 9, Russia targets a building housing a maternity ward and paediatric hospital in Mariupol, killing three, including a young girl.
Ukraine and the European Union condemn a "war crime." Russia claims the building is sheltering Ukrainian nationalists.
First evacuations
Mid-March sees the start of the evacuation of thousands of civilians from the city through a humanitarian corridor.
Earlier evacuation attempts had collapsed with both sides accusing the other of failing to halt fire.
Theatre destroyed
On March 16, Russian airstrikes raze a theatre sheltering around 1,000 people, mostly women and children.It takes days to reach survivors trapped in an underground shelter.
Ukrainian authorities estimate some 300 people were killed.
Moscow denies the attack, blaming Ukraine's far-right Azov battalion, which is based in the city.
'Freezing hellscape'
On March 21, Kyiv rejects a first Russian ultimatum to Ukrainian forces in the city to surrender.
Civilians who manage to escape in their own vehicles describe a "freezing hellscape riddled with dead bodies and destroyed buildings," Human Rights Watch says.
Ceasefire, more evacuations
On March 30, Moscow announces a ceasefire to allow the evacuation of civilians from Mariupol to the Ukrainian-controlled city of Zaporizhzhia.
The Ukrainian government sends 45 buses to bring people to safety.
On April 4, Mariupol mayor Vadym Boychenko says the city has been "90 percent" destroyed.
- Claims of hiding evidence -
On April 6, Zelensky says Russia is blocking humanitarian access to Mariupol because it wants to hide evidence of "thousands" of people killed there.
On April 7, the new "mayor" of Mariupol, Konstantin Ivashchenko, installed by pro-Russian forces, says that around 5,000 civilians have died.
'Last battle'
On April 11, marines in Mariupol say they are preparing for a "last battle".
Zelensky puts the death toll in Mariupol at "tens of thousands".
The United States says it has "credible information" that Russia may use "chemical agents" in its offensive.
Reports of mass surrender
On April 13, Russia's defence ministry says that 1,026 soldiers from the 36th Marine Brigade have "surrendered" in Mariupol and broadcasts a video appearing to show troops giving themselves up.
Ukraine's army insists the fight continues.
Over the following week, Russia issues a string of ultimatums to troops holed up at the Azovstal steelworks to give themselves up but they refuse.
- 'Last days...hours' -
On April 20, a marine commander at the steelworks, where around 1,000 civilians are also sheltering according to the Ukrainian government, says his troops are "maybe facing our last days, if not hours."
Four busloads of women, children and the elderly are evacuated from the city.
Mariupol 'liberated'
On April 21, Putin declares the "liberation" of Mariupol to be a "success." He orders the Russian military to refrain from storming the Azovstal plant, telling them to besiege it instead, "so that not even a fly can escape."