Russia said its forces were "tightening the noose" around the besieged Ukrainian port of Mariupol on Friday and concern grew over mass civilian casualties as the United States again warned China against aiding Moscow in its invasion.
Russia's advance in Ukraine has largely stalled, and its troops, frustrated by fierce Ukrainian resistance, have blasted residential areas to rubble. On Friday, missiles landed near Lviv, a western city where thousands have fled for refuge.
In Mariupol, the scene of heavy bombardment, officials estimated 80% of the city's homes had been damaged and that 1,000 people may still be trapped in makeshift bomb shelters beneath a destroyed theatre.
Nearly 5,000 Ukrainians were evacuated from Mariupol on Friday, officials said, and residents reported seeing dead bodies along the roadside as they fled the city.
"We were careful and didn't want the children to see the bodies, so we tried to shield their eyes," said Nick Osychenko, the CEO of a Mariupol TV station who fled the city with six members of his family.
"We were nervous the whole journey. It was frightening, just frightening."
Ukraine said it had rescued 130 people from the basement of a Mariupol theatre that was flattened by Russian strikes two days ago. Russia denied hitting the theatre and says it does not target civilians.
China is the one big power that has yet to condemn Russia's assault, and Washington fears Beijing may be considering giving Moscow financial and military support, something that both Russia and China deny.
In a video call that lasted around two hours, U.S. President Joe Biden warned China's President Xi Jinping on Friday of "implications and consequences if China provides material support to Russia" in Ukraine, the White House said.
The White House later said that sanctioning Beijing, the world's largest exporter, was an option, though it did not detail what constituted material support.
Chinese state media quoted Xi as saying: "The Ukraine crisis is something that we don't want to see," adding that the call was requested by the U.S. side.
NATO should hold talks with Russia to resolve the factors behind the conflict, Chinese state media quoted Xi as saying, without assigning blame to Russia for the invasion.
The mayor of Mariupol confirmed to the BBC that fighting had reached the centre of the city, where some 400,000 people have been trapped for over two weeks, sheltering from bombardment that has cut electricity, heating and water supply.
Regional Governor Pavlo Kyrylenko said around 35,000 people had managed to leave the city in recent days, many on foot or in convoys of private cars, but near-constant shelling was preventing humanitarian aid from getting in.
Oksana Zalavska, 42, fled Mariupol two days ago after staying in an overcrowded bomb shelter where adults ate one tiny meal a day as rations were low.
French President Emmanuel Macron told Putin he was extremely concerned about the situation in Mariupol while the Kremlin said it was doing everything possible to protect civilians.
Jakob Kern, emergency coordinator for the crisis at the U.N. World Food Programme (WFP), said Ukraine's "food supply chain is falling apart" with insecurity and fear of attack hindering the movement of goods. read more
WFP buys nearly half of its wheat from Ukraine to feed people in global crisis zones, and Kern said the war could cause "collateral hunger" in poor countries worldwide.
At the start of the fourth week of Putin's attempt to subdue what he calls an artificial state undeserving of nationhood, Ukraine's elected government is still standing and Russian forces have not captured a single big city.
With Russia looking to regain the initiative, three missiles landed at an airport near Lviv, a western city where hundreds of thousands thought they had found refuge far from Ukraine's battlefields.
Putin promised tens of thousands of people waving Russian flags at a soccer stadium in Moscow that the "special operation" would succeed.
"We know what we need to do, how to do it and at what cost. And we will absolutely accomplish all of our plans," Putin said, adding that, when needed, Russian soldiers "shield each other from bullets with their bodies like brothers".
Russian troops have taken heavy losses while assaulting urban areas, sending more than 3 million refugees fleeing over Ukraine's western border.
Ukraine said its troops had prevented Russia from making any fresh advances on Friday and the Russians had problems with food, fuel and communications. Britain said Russian forces had made minimal progress this week.
Russia has been intensively shelling eastern Ukrainian cities, especially Chernihiv, Sumy, Kharkiv and Mariupol, and there have been nightly deadly missile attacks on Kyiv, where Ukrainian forces have halted troop columns outside the city.
Debris from a missile blew a large crater in the ground in the middle of a residential block where a school was also located in northern Kyiv, shattering hundreds of windows and leaving debris scattered around the complex.
At least one person was killed, emergency services said. Kyiv's mayor said 19 people were injured including four children.
"This is a war crime by Putin," said Lyudmila Nikolaenko, visiting her son, who lived in one of the apartments hit. "They say they aren't hitting regular people, they say we are firing at ourselves."
Kyiv and Moscow reported progress in talks this week towards a political formula that would guarantee Ukraine security protection outside of the NATO alliance.
But Ukraine said the need for an immediate ceasefire and withdrawal of Russian troops remained unchanged, and both sides accused each other on Friday of dragging out the talks.