Ukrainian and Russian forces were fighting for "literally every meter" in Severodonetsk, President Volodymyr Zelensky said, as fighting intensified in an eastern region where the country's top commander said the land "is covered in blood".
Severodonetsk and nearby Lysychansk have been targeted for weeks as the last areas in the Lugansk region still under Ukrainian control, AFP said.
Russia's massed artillery in that region gave it a tenfold advantage, said Valeriy Zaluzhny, commander-in-chief of the Ukrainian military.
But, "despite everything, we continue to hold positions", he said.
"Every meter of Ukrainian land there is covered in blood -- but not only ours, but also the occupier's."
In his nightly video address, Zelensky said the latest fighting in Severodonetsk was "very fierce", adding that Russia was deploying undertrained troops and using its young men as "cannon fodder".
By attacking Severodonetsk's last remaining bridges, the Russians were aiming to cut the key industrial city off completely from the rest of the country, said regional governor Sergiy Gaiday.
"Most likely (in the next two days), they will throw all the reserves to capture the city," Gaiday said.
He also accused Russia of shelling the Azot chemical plant in Severodonetsk, where hundreds of civilians have reportedly taken refuge.