The near-constant thump of shellfire washed over a battered hamlet on Wednesday, testifying to fierce fighting beyond its wind-swept fields between Ukrainian troops pressing a counteroffensive 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 and shell craters and lined by houses pulverized into wood splinters and brick chunks.

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