Ukrainian servicemen take cover in a shelter at the frontline near Kharkiv. Photo / AP
Ukrainian forces are on the verge of trapping thousands of Russian soldiers in an encirclement that, if successful, would be Moscow's worst battlefield defeat since World War II.
Russia said it was rushing reinforcements to the Kharkiv region and pro-Moscow officials in the region acknowledged a "substantial" Ukrainian victory.
Ukraine's ministry of defence said on Friday (local time) that its surprise offensive had covered "nearly 50km in three days" and that the Russians were trying to evacuate wounded men and damaged equipment.
It did not give further details, but pro-Russian war bloggers and other sources confirmed Ukrainian spearhead units had reached the banks of the Oskil river at Senkove.
The advance means Russia's main line of communication with its army group based in the town of Izyum has been severed, trapping thousands of troops between the river and Ukrainian forces.
If it falls, Russia could lose an entire army group of soldiers - believed to be in the thousands - and find its assault in Donbas jeopardised.
"The very fact of a breach of our defences is already a substantial victory for the Ukrainian armed forces," Vitaliy Ganchev, the Moscow-installed head of occupied parts of Kharkiv region, told Russian state television.
He was speaking after Volodymyr Zelensky, the Ukrainian president, shared a video of Ukrainian soldiers holding the national flag over Balakliya, a town Russia captured early in the war and had occupied for six months.
Ukrainian commanders said their offensive in the Kherson region was also gaining ground, although they have failed to achieve a similar breakthrough similar near Kharkiv.
"It's very tough, but we are moving forward," commander-in-chief General Valeriy Zaluzhny said Friday.
Footage emerging from the battlefront showed Ukrainian forces, wearing blue tactical recognition flashes, travelling past wrecked Russian vehicles. One showed a gunfight near a block of flats as they attempted to clear a recaptured town.
Ukrainian officials also released footage of soldiers delivering aid and accepting hugs and kisses from liberated civilians.
In Balakliya, two women cried as they embraced Ukrainian soldiers who arrived on the town square. In another video a woman told a group of soldiers: "We prayed for you for half a year."
Ignoring entreaties to stay undercover in case of further shelling, she went on: "We have some pancakes left, would you like them?"
By afternoon, the Ukrainians had expanded their hold on the riverbank to the north and south towards Izyum and northwards to Kupiansk, a strategic railway junction.
Fighting was reported on the outskirts and photographs of Ukrainian soldiers holding their national flag next to a monument at the entrance to the town. Russia still held at least two bridges over the Oskil and its generals appeared to be trying to reinforce the pocket on Friday afternoon.
Ganchev said the Russians were trying to retake the town of Balakliya, which the Ukrainians liberated on Thursday. "Now Russian reserves have been brought there, our troops are fighting back," he said.
The ministry of defence released video footage of a column of armoured vehicles and lorries that it said were driving towards the Kharkiv region. It did not say where they were coming from or how long they would take to arrive.
Yevgenny Podubny, a war correspondent for Russian state television, published a video of Mi-26 cargo helicopters which he said were being used to airlift troops and heavy armoured vehicles into Izyum and Kupiansk.
Telegram channels linked to the Wagner mercenary group, which is currently involved in fighting further south in Donbas, also claimed its fighters were going to Kupiansk. The claims could not be verified.
The Russian ministry of defence made no mention of the Ukrainian breakthrough in its daily update on Friday afternoon. Some senior officers sought to portray it as a temporary tactical move.
Apti Alaudinov, commander of the Chechen Akhmat special unit currently in Ukraine, said on Russia-1's flagship news show on Friday that Russian troops "have to surrender some parts of the front line in order to stretch the enemy's forces as wide as possible to minimise the concentration of enemy troops. Neither Balakliya nor Kupiansk have any extraordinary strategic importance".
Ukrainian troops in the liberated territories of the Kharkiv region.
"It is very difficult for us, but we are moving forward." General Valerii Zaluzhnyi, Commander-in-Chief of Ukrainian Armed Forces. pic.twitter.com/Bbc3ycT73l
But even state television, pundits had to disagree.
Mikhail Khodarenok, a retired colonel, said on the same state television show on Friday afternoon that Kupiansk is "extremely important for bringing supplies to all of our forces operating in that area".
Maxim Gubin, the Russian-appointed head of Kupiansk district, told Russia's RIA Novosti that the situation was "difficult" but insisted Russian forces were "holding their positions".
Anger at the gap between official denials and the situation on the battlefield spilled out on the Telegram channels where many Russian war bloggers, soldiers and journalists discuss the war.
"Stop bull----ting," one commented after Gubin was quoted saying Ukrainian commandos had not succeeded in reaching Kupiansk.
To make his point, the user posted a photograph of Ukrainian soldiers on the town's outskirts.
Zakhar Prilepin, a nationalist writer who led a battalion of Russian volunteers during the previous war in Donbas, said he had received urgent appeals for help from contacts inside the pocket.
"Reserves are immediately needed in Izyum," he wrote on Telegram. "There are not enough forces in the town for the assigned task."
He urged Russians commanders "not to turn Izyum into Brest fortress," where Red Army soldiers mounted a doomed but much mythologised last stand after being overrun by the Wehrmacht in 1941.
The collapse of the Izyum pocket would result in thousands of Russian casualties and prisoners and the possible capture of an entire army group's command post.
It would also seriously weaken Russia's positions in northern Donbas and could force it to abandon territory seized during its summer offensive there.
No Russian army has suffered such a significant defeat in a single battle since the Third Battle of Kharkiv in 1943.
That battle, the last really successful German offensive on the Eastern Front, was fought in largely the same area as the current struggle.
Several Russian hardline nationalists have appealed to the Kremlin to investigate how Russia could have lost so much territory in a matter of days.
"The fact that the enemy captured several dozen towns is an emergency that requires a full investigation. What is it? Negligence? Strategic mistake?" said Semyon Pegov, a pro-Kremlin journalist, adding that the loss of Balakliya also caused "reputational damage" for Russia as it "betrayed" local residents who "put their trust in us".
Yegor Kholmogorov, a prominent nationalist columnist, on Friday published a map showing the areas that Russia lost in recent days.
"The map is horrible. Even worse than I could have imagined in the morning. No one is panicking. But it's time to stop being complacent," he said.
"Someone has to be held accountable for the fact that thousands of people who were about to become Russian citizens and get Russian passports will now end up in the hands of Ukrainian Nazis?"
Maj Gen Igor Konashenkov, the Russian military's spokesman, did claim to have destroyed three Ukrainian command posts and an ammunition dump in the Kharkiv region and shot down several drones, including at least one over Izyum.
He said several Ukrainian attacks on the southern front near Kherson were repulsed with heavy losses.
Officials in Kharkiv itself said at least 10 civilians were killed in a "revenge" Russian rocket strike on the city centre.
Rockets hit a children's arts centre and a school, as well as private homes, wounding at least 10 people, including three children, Kharkiv mayor Ihor Terekhov wrote on Telegram.
Andriy Yermak, chief of staff to Zelensky, said the attack was revenge for the success of the offensive.
"For every success of Ukraine's armed forces, for every victory, Russians ... answer with strikes on innocent people," he wrote on Telegram, confirming that children were among the wounded.