BUCHA, Ukraine—People in this city buried their neighbors in mass graves, after Russian troops withdrew from the area around Ukraine’s capital, leaving behind corpses, land mines and what Ukrainian officials said is evidence of potential war crimes.

Ukrainian troops had retaken control of the entire Kyiv region, Ukraine’s deputy defense minister, Hanna Malyar, said Saturday, as Russian forces in recent days gave up scores of towns and villages after Ukrainian resistance led to heavy losses.

Ukrainians counted the dead and cleared land mines across the area, following the Russian withdrawals and Moscow’s shifting of military operations to Ukraine’s east. In Bucha, fierce fighting left the small city 15 miles northwest of central Kyiv a landscape of shattered buildings and burned-out tanks.

The wreckage of a heavily damaged gas station outside Kyiv, Ukraine.

Photo: STRINGER/REUTERS

Locals buried scores of the dead in mass graves as a cold rain fell. Others flagged down troops to show them where the dead lay.

The withdrawing Russian forces “left in their wake a complete disaster and many dangers,” Ukrainian President Volodymyr Zelensky said in an overnight address. He added that the region remained unsafe. “Firstly, the bombing might continue,” he said. “Secondly, they are mining this entire territory.”

Mr. Zelensky said retreating Russian forces had placed mines in houses, laid trip wires and booby-trapped corpses.

The Ukrainian president singled out the cities of Kharkiv and Mariupol as potential targets of renewed attacks as Russia repositions its forces. “In the east of our country, the situation remains extremely difficult,” Mr. Zelensky said. “I emphasize once again: Hard battles lie ahead.”

The Kyiv regional military administration published a video Saturday saying Ukrainian armed forces had retaken more than 30 settlements around the capital. Speaking in one of the villages, with charred Russian tanks in the background, the head of the Kyiv military administration, Oleksandr Pavliuk, said Ukrainian forces had ambushed a retreating Russian column.

Damaged equipment left by the Russians in the village of Dmitrivka, Ukraine, near Kyiv.

Photo: Atef Safadi/Shutterstock

The Ukrainian military is assessing the damage in each town, he said, and emergency services are clearing explosives. “After this, we will give permission to local residents to return,” Mr. Pavliuk said.

Bucha’s extensive devastation led authorities to institute a curfew until Tuesday morning. Russian troops had booby-trapped the administrative building with trip-wired grenades, said Andrei Verlaty, a deputy commander of Bucha’s territorial defense brigade.

Mykhailo Podolyak, an adviser to Mr. Zelensky, posted a photograph Saturday on Twitter showing the bodies of three men in Bucha he said Russian forces had shot and killed. One appeared to have his hands bound.

“The bodies of people with tied hands, who were shot dead by soldiers lie in the streets,” Mr. Podolyak wrote. “These people were not in the military. They had no weapons. They posed no threat. How many more such cases are happening right now in the occupied territories?”

The rights group Human Rights Watch said it has collected evidence of a Russian war crime in Bucha. The group said it had interviewed a woman who had witnessed Russian troops round up five men and shoot one of them in the back of the head, killing him.

“We have documented an unmistakable case of summary execution by Russian Federation forces in Bucha on March 4,” a Human Rights Watch spokeswoman said.

Ukraine’s Defense Ministry called Bucha a “new Srebrenica,” referring to the 1995 killing of more than 8,000 Muslims during the Bosnian War.

Moscow has rejected war-crimes allegations, including accusations that Russia has targeted civilians.

Also, north of Kyiv, the body of a Ukrainian photojournalist who went missing while working nearly three weeks ago was found in the district of Vyshhorod. Maksym Levin died after being shot twice by Russian forces, according to a statement from Ukraine’s prosecutor general. Another photographer who was with him remains unaccounted for.

A damaged bridge in Bucha, Ukraine. The community, northwest of the capital, has been recaptured by Ukrainian forces.

Photo: Rodrigo Abd/Associated Press

Antitank mines on a bridge in Bucha, Ukraine, on Saturday.

Photo: Rodrigo Abd/Associated Press

The General Staff of the Ukrainian armed forces said Russian troops are likely to maintain some positions around Kyiv and Chernihiv, a city to the north of the capital, to tie Ukrainian forces down while pressing to complete the takeover of Kherson in the south, as well as Luhansk and Donetsk in the east.

To avoid a protracted conflict that would bleed its military, Mr. Podolyak predicted that Russia would relinquish all territories except those in the south and east, where it could dig in and position air defenses to minimize losses. “Without heavy weapons, we won’t be able to drive Russian forces out,” he said.

As Russian military units have moved back from Kyiv, a large number of additional troops have passed into northeastern Ukraine, according to the head of the regional military administration in Sumy.

Southeast of Kyiv, Russia fired missiles overnight at the city of Poltava and conducted strikes on industrial facilities in Kremenchuk early Saturday. Dmytro Lunin, head of the Poltava regional military administration, said rescue workers were extinguishing a blaze in Kremenchuk, adding that there were injuries and possibly deaths.

The Russian Defense Ministry said its forces had destroyed gasoline and diesel fuel-storage facilities at the Kremenchuk oil refinery, which has supplied Ukrainian troops in central and eastern parts of the country, using high-precision long-range airborne and sea-based weapons.

The strike came after Moscow accused Ukraine of firing missiles at an oil depot in Belgorod, a Russian city about 20 miles from the Ukrainian border, in a predawn helicopter raid Friday. A Russian investigative agency on Saturday said it had opened a criminal case against Ukrainian military personnel, saying they committed a terrorist act by executing the raid.

Fierce fighting continued around the strategic eastern city of Izyum. Russian forces fired three short-range ballistic missiles from Crimea, which was annexed by Moscow in 2014, into the region of Odessa, on the Black Sea coast. The head of Odessa’s regional military administration, Maksym Marchenko, said there were casualties, without distinguishing between military or civilian losses.

Russian forces opened fire on protesters in the southern Ukrainian town of Enerhodar, site of Europe’s largest nuclear power plant, on Saturday, after residents demonstrated in support of Ukraine, singing the national anthem.

Family members mourning the death of a Ukrainian soldier at his funeral in Lviv, in western Ukraine, on Saturday.

Photo: Nariman El-Mofty/Associated Press

The remnants of Russian armored vehicles littering a street in Kyiv, Ukraine.

Photo: Oleg Petrasyuk/Shutterstock

A video posted on the official Telegram channel of Energoatom, the Ukrainian state company that operates the nuclear plant, showed people scattering under fire. The company said Russian forces detained some people as the crowd dispersed.

The mayor of Tavriisk in the Kherson region has been missing since Friday, the town council said. The head of the Melitopol district council, Serhiy Priyma, has also been held for more than two weeks, along with five school principals. “We are trying to find out from the occupiers what the demands are for his release, but so far they are not saying anything,” said the head of the Melitopol district military administration, Ihor Sudakov.

Aside from Bucha, other towns near Kyiv that were recaptured by Ukrainian forces included Ivankiv, Dymer, Irpin, Vorzel and Hostomel, where Russian paratroopers descended on Feb. 24, the first day of the invasion.

“Hostomel has been liberated but is still being shelled and there are many explosives in the area,” said Taras Dumenko, head of the Hostomel village military administration.

Kyiv regional police chief Andriy Niebytov said police and rescue workers were going house to house in Hostomel. “We understand there might be people under the wreckage,” he said. Bodies are being taken to the morgue to establish the cause of death.

Ukrainian lawmaker Olha Vasilevska-Smahliuk said a two-day curfew had been imposed in recaptured towns to conduct mine sweeps, but trucks carrying humanitarian aid would be allowed to enter.

Oleksandr Bursuk, the head of a linen factory in Dymer, said workers’ clothing and personal effects had been looted, as well as a delivery truck, which he said he tracked to Belarus.

“There is no occupation army in Dymer anymore,” said Mr. Bursuk. “As a farewell, our ‘liberators’ were looting everything they could.”

A man returning to the village of Velyka Dymerka filmed the damage he said Russian forces had inflicted on his house. A flat-screen TV had been stabbed with a saber. In a kennel outside, his dog lay dead, apparently shot. “Why would you kill it?” he asked in the video.

A playground in Bucha was left riddled with bullet holes.

Photo: Ronaldo Schemidt/Agence France-Presse/Getty Images

Corrections & Amplifications
Taras Dumenko is the head of the Hostomel village military administration, and Dmytro Lunin is the head of the Poltava regional military administration. An earlier version of this article misspelled their last names as Doumenko and Lulin, respectively. (Corrected on April 2.)

Write to Brett Forrest at brett.forrest@wsj.com and Isabel Coles at isabel.coles@wsj.com