It was one of the most decisive battles of the war so far – a ferocious two-day struggle for control of the farming town of Voznesensk and its strategically important bridge.
Victory would have enabled Russian forces to sweep further west along the Black Sea coast towards the huge port of Odesa and a major nuclear power plant.
Instead, Ukrainian troops, supported by an eclectic army of local volunteers, delivered a crushing blow to Russian plans, first by blowing up the bridge and then by driving the invading army back, up to 100km, to the east.
“It’s hard to explain how we did it. It’s thanks to the fighting spirit of our local people and to the Ukrainian army,” said Voznesensk’s 32-year-old mayor, Yevheni Velichko, standing in body armour with his guards outside the town hall.
But almost three weeks after that battle, the mayor warned that another attack by Russian forces was probably imminent and that the town’s defenders lacked the weapons to hold them off a second time.
“This is such a strategic location. We’re not only defending the town, but all the territory behind it. And we don’t have the heavy weapons our enemy has,” he said.
As on so many frontlines in Ukraine, British-supplied anti-tank missiles proved crucial in turning the tide against Russian armour in Voznesensk, leaving the town littered with up to 30 tanks, armoured cars and even a helicopter.
“It’s only thanks to these weapons that we were able to beat our enemy here. And we say thank you to our partners for their support. But we need more. The enemy’s convoys will keep coming,” said Mr Velichko.
Voznesensk’s strategic significance became clear soon after Russian forces failed to capture an even larger bridge, further to the south, across Ukraine’s second-largest river, the Southern Buh.
Today, Voznesensk is not quite a ghost town, haunted by regular air raid sirens. But thousands have left in recent weeks, by train or on pot-holed country roads that wind through vast, rolling fields of wheat.
Many of those who have chosen to stay behind still seem eager to talk about their remarkable victory.
“It was a colossal effort by the whole town,” said Alexander, a local shopkeeper who filmed himself on the frontlines with an AK47, screaming “Come on my little beauties!” as another volunteer fired a rocket-propelled grenade towards Russian positions.
“We used hunting rifles, people threw bricks and jars. Old women loaded heavy sandbags.
“The Russians didn’t know where to look or where the next attack would come from. I’ve never seen the community come together like that,” he said, standing by the twisted wreckage of the bridge, which Ukrainian forces destroyed within hours of the first Russian attack.
The matted swirl of Russian tank tracks still mark Svetlana Nikolaevna’s garden, in the village of Rakove, on the southern edge of Voznesensk, where some of the heaviest fighting took place.
Bloody bandages and Russian ration packs litter the hedge rows. The 59-year-old pointed to her husband’s tool shed, explaining that two captured Ukrainian soldiers had been held there by the Russians and were only saved from execution by a surge in fighting.
“Look at the blood stains on my door,” she said, inviting visitors inside her ramshackle cottage. While she and her family took shelter in a nearby cellar, the Russians converted her entire home into a makeshift field hospital.
“I came back to get some clothes on the second day. There were wounded people lying everywhere. Ten of them, I think. I’ve cleared up most of the blood,” she said.
“They left in a hurry, one night. They left everything behind – boots, socks, body armour, helmets – and just loaded up their dead and their wounded and ran away.”
It fell to the local funeral director, Mykhailo Sokurenko, to hunt in the fields for more Russian bodies and then load them into a train wagon.
“I don’t consider them human beings [after what they did here]. But it would wrong just leave them out in the field, still frightening people even after their deaths,” he said.
“These Russians are sick in the head, so we’ll have to stay on guard. But victory will come, and we’ll push the Russians out of all our lands.”