Russian troops are withdrawing from Ukraine's second-largest city after weeks of heavy bombardment, the Ukrainian military said as the two sides engaged in a battle for the country's east.
Ukraine's general staff said the Russians were pulling back from the north-eastern city of Kharkiv and focusing on guarding supply routes, while launching mortar, artillery and air strikes in the eastern Donetsk region to "deplete Ukrainian forces and destroy fortifications".
Defence minister Oleksii Reznikov said Ukraine is "entering a new – long-term – phase of the war".
As the country's top prosecutor put a Russian soldier on trial for war crimes, the first of dozens that could face charges, President Volodymyr Zelensky said Ukrainians were doing their "maximum" to drive out the invaders and that the outcome of the war would depend on support from Europe and other allies.
"No one today can predict how long this war will last," he said in his nightly video address on Friday.
After failing to capture Kyiv, Ukraine's capital, the Russian military decided to concentrate on the Donbas, but its troops have struggled to gain ground.
Watch: Russia 'mirroring fascism' with invasion of Ukraine, Defence Secretary says.
Mr Zelensky said Ukraine's forces had made progress, retaking six Ukrainian towns or villages in the past day. Western officials said Ukraine had driven Russian forces back around Kharkiv, which was a key target for Moscow's troops.
"The Russians really haven't made much in the way of tactical gains recently," one western official said, describing the war's front line as "oscillating".
"The Ukrainians continue to launch counterattacks, particularly around Kherson and Kharkiv. We expect this to settle into a long attritional battle," the official added.
The Ukrainian military chief for the Luhansk region of Donbas said on Friday that troops had nearly full control of Rubizhne, a city with a pre-war population of around 55,000.
Fighting was fierce on the Siversky Donets River near the city of Severodonetsk, where Ukraine has launched counterattacks but failed to halt Russia's advance, said Oleh Zhdanov, an independent Ukrainian military analyst.
Watch: How long can war in Ukraine last?
"The fate of a large portion of the Ukrainian army is being decided — there are about 40,000 Ukrainian soldiers," he said.
However, Russian forces suffered heavy losses in a Ukrainian attack that destroyed a pontoon bridge they were using to try to cross the river in Bilohorivka, Ukrainian and British officials said, in another sign of Moscow’s struggle to salvage a war gone awry.
Ukraine's airborne command released photos and video of what it said was a damaged Russian pontoon bridge over the Siversky Donets River and at least 73 destroyed or damaged Russian military vehicles nearby.
The UK Ministry of Defence said Russia lost "significant armoured manoeuvre elements" of at least one battalion tactical group in the attack.
A Russian battalion tactical group consists of about 1,000 troops.
It said the risky river crossing was a sign of "the pressure the Russian commanders are under to make progress in their operations in eastern Ukraine".