Intense fighting raged in several parts of Ukraine on Saturday, suggesting there will be no swift let-up in the month-old war while Biden framed the fight as part of the historic struggle for democratic freedoms in a major address from Poland as he concluded his European trip aimed at bolstering Western resolve.
"For God's sake, this man cannot remain in power," Biden said in Warsaw.
A White House official later said Biden was not calling for regime change but was saying, "Putin cannot be allowed to exercise power over his neighbours or the region."
The Kremlin dismissed Biden's comment, saying it was "not for Biden to decide".
After more than four weeks of fighting, Russia has failed to seize any major Ukrainian city and the conflict has killed thousands of people, sent nearly 3.8 million abroad and driven more than half of Ukraine's children from their homes, according to the United Nations.
Moscow on Friday signalled it was scaling back its military ambitions to focus on territory claimed by Russian-backed separatists in the east of Ukraine.
But on Saturday, four rockets hit the outskirts Lviv, some 60km from the Polish border for what appeared to be the first time since Moscow's invasion. The western Ukrainian city had so far escaped the heavy bombardment and fighting that has devastated other cities closer to Russia.
Regional Governor Maksym Kozytskyy said five people had been wounded and residents were told to head to shelters after an initial strike hit mid-afternoon. Reuters witnesses saw black smoke rising from the northeast side of the city and Lviv's mayor said an oil storage facility had been hit.
Ukrainian officials later reported another strike significantly damaged Lviv's infrastructure but that so far there were no reported deaths.
Russian forces also seized Slavutych, a town where workers at the nearby defunct Chernobyl nuclear plant live, and three people were killed, Interfax Ukraine news agency quoted the local mayor as saying.
In the encircled southern city of Mariupol, Mayor Vadym Boichenko said the situation remained critical, with street fighting in the centre. Mariupol has been devastated by weeks of Russian fire.
In an address to Qatar's Doha Forum, Ukrainian President Volodymyr Zelenskiy compared the devastation in Mariupol to the destruction inflicted on the Syrian city of Aleppo by combined Syrian and Russian forces in Syria's civil war.
"They are destroying our ports," Zelenskiy said, warning of dire consequence if his country - one of the world's major grains producers - could not export its foodstuffs, saying it would "deal a blow to countries worldwide".
Biden earlier on Saturday called Putin a "butcher" after meeting Ukrainian refugees at a food kitchen in Poland - a comment the Kremlin was cited by Russia's TASS news agency as saying would further damage prospects for mending Russian-US ties.
Zelenskiy pushed late on Friday for further talks with Russia after its defence ministry said a first phase of its operation in Ukraine was mostly complete and that it would now focus on the Donbass region bordering Russia, which has pro-Moscow separatist enclaves.
Moscow has until now said its goals for what it calls its "special military operation" include demilitarising and "denazifying" its neighbour. Ukraine and its Western allies have called that a baseless pretext for an unprovoked invasion.
The United Nations has confirmed 1104 civilian deaths and 1754 injuries in Ukraine since the invasion but says the real toll is likely higher. Ukraine says 136 children have been killed.
Russia's defence ministry said 1351 Russian soldiers had been killed and 3825 wounded, the Interfax news agency reported on Friday. Ukraine said 15,000 Russian soldiers have been killed. Reuters could not independently verify the claims.
To the north, battle lines near the capital Kyiv have been frozen for weeks with two main Russian armoured columns stuck northwest and east of the city.