Ukrainian and Russian troops fought street by street for control of the industrial city of Sievierodonetsk on Monday in a pivotal battle of the Kremlin offensive in Ukraine's eastern Donbas region.
Which side had the upper hand was unclear, with "the situation changing from hour to hour," Oleksandr Stryuk, head of administration in Sievierodonetsk, said on television.
The city has become the main target of the Russian offensive in the Donbas - comprising Luhansk and Donetsk provinces - as the Kremlin's invasion grinds on in a war of attrition that has seen cities laid waste by artillery barrages.
"Our heroes do not give up positions in Sievierodonetsk," President Volodymyr Zelenskiy said in his nightly video address on Monday. "In the city, fierce street fighting continues."
Ukraine's defence ministry said Russia was throwing troops and equipment into its drive to capture the largest remaining Ukrainian-held city in Luhansk.
The province's governor Serhiy Gaidai said earlier on Monday the situation had worsened after Ukrainian defenders had pushed back the Russians over the weekend as they seemed close to victory.
Stryuk said street fighting was raging and neither side was preparing to withdraw. Both sides say they have inflicted huge casualties on each other.
In its nightly update, the Ukrainian military said two civilians were killed in Russian shelling in the Donetsk and Luhansk regions on Monday and that Russian forces had fired at more than 20 communities.
Reuters could not independently verify the battlefield reports. Russia denies targeting civilians in the conflict.
Russia says it is on a mission to "liberate" the Donbas - partly held by separatist proxies of Moscow since 2014 - after Ukrainian forces pushed its troops back from the capital Kyiv and Ukraine's second city Kharkiv in the war's early stages.
Zelenskiy sought to rally his troops on Sunday with a visit to two cities close to the front lines.
"What you all deserve is victory - that is the most important thing. But not at any cost," Zelenskiy said in a video.
He said he had travelled to Lysychansk, south of Sievierodonetsk, and Soledar - rare outings for him outside of Kyiv since the start of the Russian invasion on Feb. 24.
Russia calls its action in Ukraine a "special military operation" to stamp out what it sees as threats to its security. Ukraine and its Western allies dismiss this as nonsense and say Russia's is an unprovoked war to grab territory that risks turning into a wider European conflict.
Ukraine's defence ministry said Russian forces were also advancing towards Sloviansk, which lies about 85 km (53 miles) to the west of Sievierodonetsk.
Some 60 km (40 miles) to the south, on the front line near Bakhmut, Ukrainian soldiers said the situation was difficult but they had no choice but to push back the Russians.
A unit commander who gave his name as Maxym appealed for more arms from Ukraine's allies.
"With more anti-tank weapons we would be able to destroy their tanks, to cause maximal damage and the enemy will be forced to flee from where they came," he told Reuters. "...We will fight for every piece of this land."