BUCHA, Ukraine—In early March, Volodymyr Borovchenko walked uphill on Yablunska Street to get to his job at a home for special-needs children—and straight into a Russian military no-go zone.

Russian troops, halted in their advance on Kyiv by Ukrainian forces, had occupied Bucha days earlier. Telling local residents they were worried that somebody was reporting their positions to Ukraine’s military, the Russian soldiers ordered people to stay off the street, which runs parallel to the Bucha River on the southern edge of town.

For Mr. Borovchenko, Yablunska was the only way to get to work. A sniper shot the 68-year-old superintendent, dropping him to the road in front of a shrapnel-riddled green gate, said a friend who lives at the scene. By the time Russian forces retreated last week, 17 corpses lay on Yablunska, according to the friend, who only gave his first and middle names, Vasyl Mykolayovych.

The shootings on Yablunska were part of what residents and Ukrainian officials say was a spree of killing, raping and looting that marked Russia’s monthlong occupation of Bucha, a well-heeled town on the northwestern outskirts of Kyiv. Several hundred civilians were killed there, say Ukrainian officials, who want to make Bucha a prime exhibit for an investigation into potential war crimes in areas occupied by Russian forces.

Moscow has denied targeting civilians in its military assault on Ukraine and called the video and photographic images from Bucha staged.

Volunteers open body bags to check identities at the Bucha cemetery.

Intercepted radio communications by the German foreign intelligence service BND record Russian troops talking about the killing of civilians in Bucha and other areas in Ukraine before they retreated. The intercepts, first reported by the German magazine Spiegel, were described to German politicians and officials on Wednesday, according to one person familiar with the matter.

Facing mounting losses amid stiff resistance from Ukrainian forces, the Russian soldiers stationed throughout the city turned their frustration on the locals, according to residents and Ukrainian officials. They killed some to instill terror and others whom they suspected of giving away Russian troop positions, residents said.

“They turned into beasts,” said Maria Rusyn, a 48-year-old who said two people were executed in front of her garage. Blood stains are still visible on the garage door.

Her neighbor, Vladyslav Verhynskiy, 31, an army veteran, didn’t return from taking out the trash two weeks ago.

His mother, Lyudmyla Verhynska, said she pleaded with Russian troops stationed in a nearby apartment block to provide his location, to no avail.

A week later, she said she was scavenging for firewood in the yard of a nearby house when she found her son lying in a pool of blood with most of the front of his face missing. Two neighbors who had taken refuge in their apartment lay beside him.

Lyudmyla Verhynska said her son was killed during the Russian occupation of Bucha.

A boyhood photo of Vladyslav Verhynskiy, left, in his mother’s house.

Civilian deaths piled up so quickly in Bucha that the morgue ran out of space, according to local officials. Some of the dead were buried in a mass grave beside St. Andrew’s Church in the center of town, and also in hastily dug pits and holes. Dozens of bodies lay in the streets.

“Things you wouldn’t see in a nightmare were happening here,” Ms. Rusyn said.

On Thursday, municipal workers loaded bodies collected in the past three days into a van at Bucha cemetery. Thirty-three black body bags lay on the ground, some with names marked on red tape: “Aunt Masha,” “Anya,” “Zhanna.” Policemen opened the bags and checked them before they were hauled away. One bag contained the remains of a boy of around 12 years old. They were transported to morgues in nearby cities.

Russian forces entered Bucha on the fourth day of the war, Feb. 27, as part of the Kremlin’s plan for a lightning offensive to take Ukraine’s capital and overthrow its leaders. The Russian military, however, ran into fierce resistance.

Maria Rusyn stands next to makeshift graves in the courtyard of a house.

Tanks and other armored vehicles coursed down Vokzalna Street toward the Bucha River, one of the last natural barriers between them and Kyiv. A group of 50 Ukrainian volunteers on the other side repelled several vehicles that tried to cross a bridge, sending them back past the intersection with Yablunska. As the armored column moved past tidy gated homes, Ukrainian artillery and drones let loose a barrage, destroying much of the convoy and burning Russian soldiers alive.

Russian snipers targeting Yablunska St.

Bucha

UKRAINE

Mass grave

Vokzalna St.

BUCHA

Destroyed Russian tank column

Deputatska St.

Witness reports 17 people killed on street

Russian depots for heavy military equipment

Russian command post

Yablunska St.

Residents prohibited from appearing on Yablunska St.

Bucha River

IRPIN

Bucha Glassworks Factory

1/4 Miles

N

Russian snipers targeting

Yablunska St.

Bucha

UKRAINE

Vokzalna St.

Mass grave

BUCHA

Witness reports 17 people killed on street

Destroyed Russian tank column

Bucha River

Russian depots for heavy military equipment

Russian command post

Yablunska St.

Residents prohibited from appearing on Yablunska St.

IRPIN

Bucha Glassworks Factory

1/4 Miles

N

Russian snipers targeting

Yablunska St.

Bucha

UKRAINE

Vokzalna St.

1

BUCHA

6

5

2

4

3

Bucha River

Yablunska St.

IRPIN

Bucha Glassworks Factory

1/4 Miles

N

Mass grave

1

Russian depots for heavy military equipment

2

Residents prohibited from appearing on Yablunska St.

3

Russian command post

4

Destroyed Russian tank column

5

Witness reports 17 people killed on street

6

Source: Staff reports
Emma Brown/The Wall Street Journal

“On the 27th, we went out to look at the destroyed equipment,” said Viktor Shatylo, who lived near the attack site. “We thought that everything was already finished, but this was only the beginning.”

After quickly pushing out the Ukrainian defenders, Russian forces occupied Bucha in early March.

Locals found the Russian military unprepared for occupation. Adorned with the letter Z in white paint, Russian trucks and cars often lost their way as they drove through town. A group of Russian soldiers drove up to city hall and ripped a souvenir map from the wall, a local man said.

A Bucha intersection.

Barricades near the bridge that connects Irpin and Bucha.

Russian troops occupied homes emptied by those who had fled, and set up bases and posts throughout town with duty officers working around the clock and camouflaged armored vehicles parked nearby.

In the occupation’s early days, some locals said, the Russians treated locals politely, and some troops confided that they didn’t understand the reason for coming to Bucha or why such a war was worth it.

Lora Khvorostyna, who took charge of a kindergarten where several hundred locals had sought refuge in the basement, went to search for fuel for a generator when, she said, she bumped into two Russian tanks.

“Are you f—ing crazy? There’s a sniper here,” she recalled the tank commander warning her.

He siphoned fuel from an abandoned car and gave it to her, she said. “If my grandfather found out I was here, he’d turn in his grave,” she recalled him saying. His grandfather, the man said, was born in Chernihiv, in northern Ukraine.

Civilians heat water in the courtyard of a kindergarten.

About a week into the occupation, locals said, the atmosphere darkened. New military vehicles arrived in Bucha carrying the V.

Russian troops established a curfew, telling locals to remain indoors after 4 p.m., and placed snipers in the town’s tallest buildings. Locals said they smelled alcohol on the breath of the Russian soldiers at checkpoints.

Yablunska Street became a focus of tension. Across the Bucha River lay the town of Irpin, where fighting was raging between Russian and Ukrainian forces. One turn from Yablunska and onto Vokzalna led quickly to Irpin.

Soldiers warned residents they had orders to shoot anyone who stepped out onto the street, said Serhiy Zubenko, a 56-year-old resident who lived on Yablunska.

Behind 306B Yablunska Street, two Russian soldiers checked the documents of a man named Leonid, as Iryna Hryhorivna, who gave only her first and middle names, watched from her apartment window. When Leonid turned to walk away, one of the soldiers pulled out a gun.

“He shot him right in the head,” she said. “He fell right next to the car near our window. They stepped over him and left.”

Russian vehicles destroyed in Bucha.

These basement stairs still have traces of blood.

Russian soldiers broke into the house of a 39-year-old woman named Natalya, and found audio recordings on her husband’s cellphone describing Russian troop movements, the woman said.

They covered her husband’s eyes with a towel held in place with tape, Natalya said, and took him to an empty house along the street. Through a small slit, he saw them take away two other men and then heard two shots. Alone on the street for a moment, he made a run for it through yards and over fences.

The soldiers returned to Natalya’s house and took her and her 19-year-old son to the basement of a nearby residential building where the local commander was based.

“Take her away and shoot her,” she recalled one of the soldiers saying. They didn’t, she said, and instead kept her captive in her home, waiting for her husband’s return.

Farther down Yablunska Street, Russian troops took over the Bucha Glassworks Factory, which locals said became a site of disappearances and murder.

Share your thoughts

Do you think Russia is guilty of war crimes? If so, will those crimes ever be prosecuted? Join the conversation below.

From the balcony on her nearby eighth-floor apartment, a woman eavesdropped on Russian soldiers who lived on the floor above her. They were discussing a group of three men who had emerged from a basement and were crouched in the courtyard around an open fire to cook a meal. She watched as bullets rained down on the men, felling them all.

Around Bucha, Russian forces were getting bogged down. Ukrainian army detachments worked secretly in Bucha and other Russian-occupied areas. Special-forces units lobbed grenades at Russian posts, helped guide artillery strikes and fired small arms from high windows. The Russian soldiers began to scrutinize the local population more fiercely, according to residents.

A Ukrainian territorial-defense member.

“They saw a spotter in every person who lived on the fifth floor,” said Leonid Cherkassy, a Bucha resident. “They saw a commando in each of us.”

On March 10, special Russian units swept through Bucha’s residential sectors, destroying doors with fire axes and storming homes, trying to root out the cause for their continuing local troubles. Searching for men on a list of those who had fought in Ukraine’s Donbas region, which Russia covertly invaded in 2014, they rounded up anyone who aroused their suspicion.

Russian troops forced men of fighting age to strip to the skin, and they scanned their bodies for military tattoos and the shoulder bruises and trigger-finger calluses that betrayed recent use of weapons.

Igor Konovalov lived on Yablunska Street and found himself naked at gunpoint. “We’re not going to kill the civilian population,” the Russian soldier holding the gun reassured him. “But don’t forget that right now we have our fingers on the trigger.”

Around Bucha, men began disappearing, their bodies reappearing on the street days later with their wrists fastened behind their backs.

A priest walks in the courtyard of a church in Bucha.

A mass grave behind Bucha’s Church of St. Andrew the First-Called All Saints.

“They killed a lot of people, pulled them out of the basement and killed them,” said a man from Bucha who gave his name as Oleksandr Viktorovych. “They tied their hands, made them squat down and killed them.”

The Russian units collected their tanks and artillery batteries along the town’s industrial edges, which gave them a vantage point to spot anyone who might be spying on their positions.

Russian troops told locals they were not to leave their courtyards, that the streets were off limits, especially Yablunska, which Russian commanders had established as the town’s southern boundary.

The war had now come to Bucha in earnest, with Ukrainian forces approaching and shelling Russian positions.

Locals were faced with an impossible decision: withstand the fighting in Bucha or brave an exit through it. Private cars packed with families edged out onto the road toward Kyiv. Russian troops shot at cars and evacuation buses.

Olena Zubenko shows a Russian position that was set up near her house.

“A car with a man with two children was passing by us, and it was shot,” said a woman who gave her first and middle names as Iryna Hryhorivna. “He drove into a three-story house and the car caught fire. The children escaped. He was burned alive.”

In the afternoons, as curfew set in, Russian snipers ascended to positions in high rises triangulated on the intersection of Yablunska and Vokzalna Streets.

“They told us, ‘You cannot cross along the road,’ ” Iryna Hryhorivna said. “ ‘At all. You can’t go anywhere. If you set foot on the sidewalk or the road, you were immediately killed.’ ”

People desperate to flee still made a break for it along the road toward Irpin. The first killing on Yablunska befell a woman on a bicycle, said Mr. Shatylo, who witnessed it from his home near the intersection with Vokzalna Street. “First I heard a shot, then I saw her,” he said. “How could a grandmother on a bicycle interfere with anyone?”

Several days later, Mr. Shatylo, peering through a gap in his front gate, saw a man walking up Yablunska carrying a sack of potatoes. “Then I heard his screams,” he said. “I heard a shot, but I didn’t understand what had happened. Every day, new corpses appeared on the street. These were single, targeted shots.”

The Ukrainian military pushed toward Bucha from the west and south, and the Russian forces fled the town on March 29.

After Ukraine retook Bucha a day later, the Zubenko family from Yablunska Street went to visit a cousin, a 59-year-old test pilot. Mr. Zubenko and his wife said they found the pilot lying on the street 200 yards from their home, three bullet wounds in his legs and two in his chest. They picked up his body and brought it back to their house, where they buried it in the back garden.

One man was buried in a courtyard after he was shot in the street.

Write to Brett Forrest at brett.forrest@wsj.com and James Marson at james.marson@wsj.com

Copyright ©2022 Dow Jones & Company, Inc. All Rights Reserved. 87990cbe856818d5eddac44c7b1cdeb8

Appeared in the April 8, 2022, print edition as ‘Horrors of Russian Invasion Laid Bare on Streets of Bucha.’