Ukrainian forces may have to retreat from their last pocket in the Luhansk region to avoid being captured, a Ukrainian official said, as Russian troops press an advance in the east that has shifted the momentum of the three-month-old war.

A withdrawal could bring Russian President Vladimir Putin closer to his goal of capturing eastern Ukraine's Luhansk and Donetsk regions in full. His troops have gained ground in the two areas collectively known as the Donbas while blasting some towns to wastelands.

Luhansk's governor, Serhiy Gaidai, said Russian troops had entered Sievierodonetsk, the largest Donbas city still held by Ukraine, after trying to trap Ukrainian forces there for days, though adding that Russian forces would not be able to capture the Luhansk region "as analysts have predicted".

"We will have enough strength and resources to defend ourselves. However, it is possible that in order not to be surrounded we will have to retreat," Gaidai said on Telegram.

Gaidai said 90% of buildings in Sievierodonetsk were damaged with 14 high-rises destroyed in the latest shelling.

Speaking to Ukrainian television, Gaidai said there were some 10,000 Russian troops based in the region and they were "attempting to make gains in any direction they can".

He said several dozen medical staff were staying on in Sievierodonetsk but that they faced difficulty just getting to hospitals because of the shelling.

Reuters could not independently verify the information.

President Volodymyr Zelenskiy said Ukraine was protecting its land "as much as our current defence resources allow". Ukraine's military said it had repelled eight attacks in Donetsk and Luhansk on Friday, destroying tanks and armoured vehicles.

"If the occupiers think that Lyman and Sievierodonetsk will be theirs, they are wrong. Donbas will be Ukrainian," Zelenskiy said in an address.

'PERFORMED POORLY'

The General Staff of Ukraine's armed forces said on Saturday Ukrainian forces had repelled eight assaults in the Donetsk and Luhansk regions in the previous 24 hours. Russia's attacks included artillery assaults in the Sievierodonetsk area "with no success", it said.

Analysts at the Institute for the Study of War, a Washington-based think tank, said while Russian forces had begun direct assaults on built-up areas of Sievierodonetsk, they would likely struggle to take ground in the city itself.

"Russian forces have performed poorly in operations in built-up urban terrain throughout the war," they said.

Russian troops advanced after piercing Ukrainian lines last week in the city of Popasna, south of Sievierodonetsk. Russian ground forces have captured several villages northwest of Popasna, Britain's defence ministry said.

Reached by Reuters journalists in Russian-held territory on Thursday, Popasna was in ruins. The bloated body of a dead man in combat uniform could be seen lying in a courtyard.

Resident Natalia Kovalenko had left the cellar where she was sheltering in the wreckage of her flat, its windows and balcony blasted away. She said a shell hit the courtyard, killing two people and wounding eight.

"We are tired of being so scared," she said.

Russia's eastern gains follow the withdrawal of its forces from approaches to the capital, Kyiv, and a Ukrainian counter-offensive that pushed its forces back from Ukraine's second city, Kharkiv.

Russian forces shelled parts of Kharkiv on Thursday for the first time in days killing nine people, authorities said. The Kremlin denies targeting civilians in what it calls its "special military operation".

Ukraine's General Staff said on Saturday while there was no new attack on the city, there were multiple Russian strikes on nearby communities and infrastructure.

In the south, where Moscow has seized a swath of territory since the Feb. 24 invasion, including the port of Mariupol, Ukrainian officials say Russia aims to impose permanent rule.

STRUGGLING TO LEAVE

In the Kherson region in the south, Russian forces were fortifying defences and shelling Ukraine-controlled areas, the region's Ukrainian governor told media. Another official said Russian forces had shelled the town of Zelenodolsk.

On the diplomatic front, European Union officials said a deal might be reached by Sunday to ban deliveries of Russian oil by sea, accounting for about 75% of the bloc's supply, but not by pipeline, a compromise to win over Hungary and clear the way for new sanctions.

Zelenskiy has accused the EU of dithering over a ban on Russian energy, saying the bloc was funding Russia's war and delay "merely means more Ukrainians being killed".

In a telephone call with Austrian Chancellor Karl Nehammer, Putin stuck to his line that a global food crisis caused by the conflict can be resolved only if the West lifts sanctions.

Nehammer said Putin expressed readiness to discuss a prisoner swap with Ukraine but added: "If he is really ready to negotiate is a complex question."

Both Russia and Ukraine are major grain exporters, and Russia's blockade of ports has halted shipments, driving up global prices. Russia accuses Ukraine of mining the ports.

Russia justified its assault in part on ensuring Ukraine does not join the U.S.-led NATO military alliance. But the war has pushed Sweden and Finland, both neutral throughout the Cold War, to apply to join NATO in one of the most significant changes in European security in decades.