The near-constant crump of shellfire washed over this battered hamlet on Wednesday, testifying to fierce fighting beyond its wind-swept fields between Ukrainian troops pressing a counter-offensive and Russian forces that once occupied the area.

While Ukrainian troops drove their foes from Vilkhivka in early April, the narrow lanes remain blighted by shrapnel, shell craters, and downed wires, and lined by houses pulverized into wood splinters and brick chunks.

Three Russian portable rocket launchers lay at the intersection of Ukrainian and Moladzhna streets. Carcasses of rotting animals littered verges, yards and an agricultural enterprise and a damaged Ukrainian tank sat near the hulks of two Russian armored vehicles dragged into a makeshift checkpoint.

The bloated corpse of a Russian soldier, mouth frozen in a deathly grimace, swollen chest bursting from a grey tunic, still lay moldering outside the fire-blacked shell of the local school that his unit had commandeered for a base.

"I grew up here and went to this school," said Andrii Korkin, 48, a contractor who came from the nearby city of Kharkiv to inspect his parents' home. "I am a Russian speaker. Russian is my native language. I want nothing to do any more with the world of the Russian Federation."

As the lanky father of two spoke, distant bursts of artillery fire and fusillades of multiple rocket launchers echoed across fields that normally would be sown with corn and wheat.

Vilkhivka lies less than 30 km (20 miles) south of the Russian border, close to which fighting rages between Ukrainian troops on a counter-offensive launched this month and Russian forces that failed to overrun Kharkiv when Moscow invaded on Feb. 24.

The Ukrainian military reported new gains on Wednesday that signaled a possible shift in the course of the war, with troops advancing to within a few kilometers of the frontier, according to a Ukrainian military source.

Moscow invaded in what the Kremlin calls a "special military operation" to demilitarise a neighbor that threatened Russia's security. Ukraine and its allies call that a lie, accusing Russia of an unprovoked aggresion that has killed thousands, uprooted millions and destroyed towns and cities.

Villagers have only just begun filtering back to Vilkhivka to retrieve furniture and clothing from properties that escaped serious damage or to pick through the rubble of those that did not, salvaging what they can despite the risk from unexploded ordnance.

Although Ukrainian soldiers bore the brunt of the fighting that drove the Russians out, Nikolay Riyanko, a grizzled 67-year-old pensioner, said he and other residents lent a hand.

On the first night the invaders occupied Vilkhivka, he said, villagers stole a Russian diesel-filled tanker truck, and another loaded with ammunition. He filched a box of six rocket propelled grenades that he eventually gave to Ukrainian troops.

"They burned Russian equipment and soldiers with those shells," he said, recounting his tale before returning to shuttling belongings from his shell-torn home to an old car parked before a crater from a Russian missile. It remains lay close by.

Before the fighting erupted, he said, Russian troops concealed themselves in homes.

"They were hiding behind the locals," said Riyanko. "They gathered about 30 people and kept us near one of their positions. There they had a machine gun, a tank, an infantry fighting vehicle."

"They kept us from 6 am to 5 pm so that the Ukrainian military would not shoot," he continued. Eventually the Russians released the group, and the battle of Vilkhivka began.

"Can they really be called real soldiers after that?" he spat. "They are motherfuckers, not military men!"

"I sent my wife to the basement of my friend, but I did not have time to hide. We lived for eight days in the basements," Riyanko recalled. "When the shell hit my house, the debris crushed my head. I got a concussion. I couldn't hear anything for three days."

Civilian volunteers from Kharkiv eventually arrived to evacuate Riyanko, his wife and other villagers.

"Today is the first time I have come back," he said. "While I sort out the rubble and debris in my house, I'll stay with my neighbors for a while. Their house survived."