Russian advances have ground to a halt in many areas, with Ukrainian forces holding out in several cities and also launching effective counterattacks.
Here are the latest developments on day 24 of the invasion:
Fighting taking place on streets in the centre of Mariupol
Russian forces agree to allow residents to evacuate several cities in the east
Ukrainian forces holding on to Kharkiv and repel an advance to the south of the city
Russian naval forces remain off the coast of Odesa in the Black Sea
Russia launched its attack in the early hours of 24 February, but more than three weeks into the war its forces have failed to build on initial gains they made across the country.
“The Russians are making almost every tactical mistake it is possible to make,” according to Prof Michael Clarke, former director of the Royal United Services Institute (Rusi) think tank.
The ferocity of the Ukrainian resistance has meant Russian forces have been forced to change their approach, according to the UK Ministry of Defence (MoD).
They are now pursuing a “strategy of attrition” which could result in increased civilian casualties and greater destruction of cities in the coming days, assessed the MoD.
The fight for Kyiv in the north
Russian forces have been attempting to encircle and cut off the capital, but large areas around Kyiv remain under Ukrainian control, especially in the south.
Ukrainian generals in Kyiv have said their focus at the moment is on keeping Russian artillery out of range of the city centre.
Russian troops advancing on the capital have faced strong Ukrainian resistance and also had serious logistical problems, with many vehicles running out of fuel.
The closest Russian troops to the north west of Kyiv are in the suburbs of Bucha and Irpin, about 25km (15 miles) from the city centre, but they have failed to cross the Irpin River so far.
That river and others across the city, as well as difficult terrain like marshlands and bogs, have helped Ukrainian forces slow Russian advances so far.
A Russian advance from the east has stalled around the suburb of Brovary, about 20km (12 miles) away from the centre of Kyiv.
Justin Bronk, a defence analyst at Rusi, told the BBC earlier this week that he doubts Russia has enough ground forces in place to take Kyiv at the moment.
Big Russian gains in the south
Russian forces initially made rapid gains in the south, with their main objective being the creation of a land corridor between Crimea, which it annexed in 2014, and areas held by Russian-backed separatists in Donetsk and Luhansk.
Standing in the way of that objective has been the port city of Mariupol, which has been encircled by Russian forces since the start of March. Ukrainian officials say some 350,000 civilians remain trapped in the city.
The BBC’s Lyse Doucet says Russia realised it couldn’t immediately take Mariupol with ground forces “so it took the people first, starving them into submission” by cutting the city off and flattening it with aerial bombardment.
Russia’s defence ministry said its forces were “tightening a noose” around the city.
Mariupol’s mayor, Vadym Boichenko, told the BBC on Saturday: “There’s no city centre left. There isn’t a small piece of land in the city that doesn’t have signs of war.”
Elsewhere in the south, Russian advances on Mykolaiv in the west have slowed. Taking the city is key for the Russians to push further west towards Odesa and cut off Ukraine’s access to the Black Sea.
Russian naval forces off the coast of Odesa have conducted some shelling of the city in recent days but an amphibious landing would be very difficult and a sign of Russian desperation, according to Mr Bronk.
Russian advances in the east
Fighting continues in the Donetsk and Luhansk regions, where Russian-backed separatists held significant territory before the Russian invasion.
In the north east, Russian troops have almost surrounded the city of Sumy, but Ukrainian forces have prevented attempts to cut it off from the south.
A similar attempt to encircle Kharkiv, Ukraine’s second-largest city, has also been repelled with analysts saying Russian forces there are in short supply of ammunition.
The BBC’s Quentin Sommerville, who has been in Kharkiv this week, says Russians forces there have grown frustrated at not being able to take the city and have turned to artillery strikes instead, destroying entire neighbourhoods.