Tens of thousands of people have been killed in the 11-month-old war, which looked set to enter a new stage on Wednesday with Germany’s decision to send Kyiv some of its powerful Leopard tanks.
Here is a timeline of the main developments:
February 2022: Invasion
Putin announces a “special military operation” in Ukraine on February 24, saying he wants to demilitarise and “de-Nazify” the country as well as protect the predominantly Russian-speaking east from “genocide”.
A full-scale invasion starts, with missile strikes on several Ukrainian cities that spark a refugee crisis.
Ukrainian President Volodymyr Zelensky stays in the capital Kyiv to lead the resistance.
The West imposes unprecedented sanctions on Russia and the European Union and the United States sends Ukraine weapons and aid.
March: advances in the south but Kyiv holds
Russian forces make gains in the south, seizing the city of Kherson, close to the Russian-annexed Crimean peninsula.
Russian forces also attempt to surround Kyiv and take Ukraine’s second city of Kharkiv in the northeast but meet fierce resistance.
A month into the fighting, Russia withdraws from the north to focus on the eastern industrial Donbas region, partly held by Russian-backed separatists, along with the south.
April: War crimes revealed
In early April, AFP discovers the bodies of at least 20 civilians lying on a single street in the Kyiv suburb of Bucha — the first of several grisly discoveries in towns that Russian forces had occupied which spark an international outcry and war crimes investigations.
May: Mariupol falls
On May 21, Russia announces the fall of the southeastern port city of Mariupol, which had been relentlessly bombed, after the last Ukrainian troops holding out at a steelworks surrender.
Sweden and Finland request membership in North Atlantic Treaty Organisation (NATO), fearing they could be future targets of Russian aggression.
June: Donbas battle rages
In June, Russia takes the Donbas city of Severodonetsk after one of the bloodiest battles of the war, followed soon after by the neighbouring city of Lysychansk.
July: Gas supplies cut
On July 22, Kyiv and Moscow sign a deal to resume grain exports from Ukraine, in a bid to relieve a food crisis aggravated by Russia’s blockade of the country’s ports.
Russian gas giant Gazprom slashes its supply to Europe through the Nord Stream pipeline, fuelling fears of gas shortages in Europe.
August: Battle for Bakhmut
Kyiv launches a major offensive to retake Kherson as a major battle begins for the eastern town of Bakhmut, spearheaded on the Russian side by the Wagner mercenary group.
Ukraine retakes hundreds of towns and villages in a lightning counter-offensive around Kharkiv.
Putin launches a partial draft of 300,000 reservists, sparking an exodus of young Russian men of military age.
On September 30, he formally annexes the Ukrainian regions of Lugansk, Donetsk, Kherson and Zaporizhzhia.
October: power supply hit
On October 8, Ukrainians celebrate after an explosion causes major damage to a bridge linking Crimea to the Russian mainland — a symbol of Moscow’s annexation of the peninsula.
Putin blames Ukrainian secret services for the attack.
Russian forces retaliated with a barrage of strikes on energy infrastructure in Kyiv and other cities, leaving millions without power in what becomes its new modus operandi throughout the winter.
November: retreat from Kherson
On November 9, Moscow orders its troops to retreat from Kherson in the face of advancing Ukrainian forces, marking a stunning defeat in one of the regions it annexed. Jubilant residents hail Ukrainian forces as liberators.
December: Zelensky goes to Washington
On December 22, Zelensky visits Washington on his first overseas trip since the war began. He keeps on his trademark fatigues for a meeting with President Joe Biden and a historic address to Congress.
January 2023: tanks on the way
Russia suffers its biggest single loss of life since the invasion in a Ukrainian attack on a temporary base in the eastern town of Makiivka on January 1.
Moscow says 89 soldiers were killed in the hit which leads to rare displays of public grief in Russia.
On January 25, after multiple appeals from Zelensky, Germany finally agrees to send Ukraine some of its powerful Leopard tanks and to allow other countries to also send some of their stocks.
On the same day, Ukraine admits to AFP that it has pulled out of Soledar near Bakhmut, two weeks after Russia announced it had ‘liberated’ the mining town.