Russia has made Bakhmut the main target of a winter push involving hundreds of thousands of reservists and mercenaries.
It has captured the eastern part of the city and outskirts to the north and south, but has so far failed to close a ring around Ukrainian defenders.
Kyiv, which had seemed at the start of March to be planning to withdraw westward, announced this week that its generals had decided to reinforce Bakhmut and fight on.
Deputy Defence Minister Hanna Maliar said that, as Russia pressed its offensive, "our soldiers are doing everything possible to prevent the enemy implementing their plans".
Russia's advances have appeared to slow amid highly public complaints from Yevgeny Prigozhin, head of the Wagner private militia leading Russia's assault, that the military command was failing to provide his men with enough ammunition.
Prigozhin on Friday thanked the government publicly for a "heroic" increase in output - but in the same audio message said he was "worried about ammunition and shell shortages not only for Wagner ... but for all units of the Russian army".
Moscow says capturing Bakhmut would punch a hole in Ukrainian defences and be a step towards seizing all of Ukraine's Donbas industrial region, a major target.
Trench warfare, described by both sides as a meat grinder, has claimed a huge toll. But Kyiv's decision to stay and fight suggests it believes Russia's losses far exceed its own.
Moscow short of missiles?
After making gains throughout the second half of 2022, Ukrainian forces have been mostly on the defensive since mid-November, while Russia has gone on the attack with troops called up in its first mobilisation since World War Two.
But apart from around Bakhmut, the Russian winter offensive has largely failed. Meanwhile, Kyiv is awaiting a surge in Western military aid expected in coming months for an offensive once muddy ground dries in late spring.
Kyiv and the West also saw signs of exhaustion in Russia's latest mass salvo of missile strikes on Ukrainian targets.
Russia fired hundreds of millions of dollars' worth of missiles across Ukraine on Thursday, including an unprecedented six of its hypersonic Kinzhal ('Dagger') missiles, touted as a superweapon to which NATO has no answer. It is believed to possess only a few dozen Kinzhals.
The barrage killed civilians, including a family buried under rubble while they slept in their homes near Lviv, 700 km from the battlefield. But otherwise it appeared to have achieved little, with damaged power systems mostly quickly restored.
The worst damage appears to have been in the eastern city of Kharkiv, where the regional governor said around 450,000 people were still without power on Friday evening.
It had been three weeks since the last similar Russian attack, the longest lull since such strikes began in October. Previously, Moscow had been unleashing such attacks roughly every week, challenging Ukraine's ability to repair infrastructure before the next onslaught.
Britain's Ministry of Defence said on Friday the reason for the longer lull was probably that Moscow was running out of missiles.
"The interval between waves of strikes is probably growing because Russia now needs to stockpile a critical mass of newly produced missiles directly from industry before it can resource a strike big enough to credibly overwhelm Ukrainian air defences," it said.
Ukrainian resistance may also be having a wider effect on Russia's economy.
Gas traders said tankers loaded with Russian liquefied petroleum gas (LPG) were unable to get out into the Black Sea because it was not considered safe for them to pass under the Crimean Bridge, a road link across the mouth of the Azov Sea badly damaged in October by a blast that Russia blamed on Ukraine.