Moscow faced global revulsion and accusations of war crimes after the Russian pullout from the outskirts of Kyiv revealed streets strewn with corpses of what appeared to be civilians, some of whom had seemingly been killed at close range.
The grisly images of battered bodies out in the open or in hastily dug graves led to calls for tougher sanctions against the Kremlin, namely a cutoff of fuel imports from Russia. Germany reacted by expelling 40 Russian diplomats, and Lithuania threw out its Russian ambassador.
Ukrainian President Volodymyr Zelenskyy left the capital, Kyiv, for his first reported trip since the war began nearly six weeks ago to see for himself what he called the "genocide" and "war crimes" in the town of Bucha, the site of some of the horrors.
"Dead people have been found in barrels, basements, strangled, tortured," said Zelenskyy, who again called on Russia to move quickly to negotiate an end to the war.
European leaders and the United Nations human rights chief condemned the bloodshed, some of them also branding it genocide, and US President Joe Biden said Russian President Vladimir Putin should face a war crimes trial.
"This guy is brutal, and what's happening in Bucha is outrageous," said Biden, who also promised to increase sanctions against Moscow.
Russian Foreign Minister Sergey Lavrov dismissed the scenes outside Kyiv as a "stage-managed anti-Russian provocation". Kremlin spokesman Dmitry Peskov said the images contained "signs of video forgery and various fakes".
Russia similarly rejected previous allegations of atrocities as fabrications on Ukraine's part.
Ukrainian officials said the bodies of 410 civilians were found in towns around Kyiv that were recaptured from Russian forces in recent days.
In Bucha, northwest of the capital, Associated Press journalists saw 21 bodies, including a group of nine in civilian clothes who appeared to have been shot at close range. At least two had their hands tied behind their backs. A bag of groceries was spilled by one of the dead.
The full extent of the bloodshed in the Kyiv area has yet to emerge. By all accounts, the horrors in the shattered southern port city of Mariupol are likely to be far worse.
"This is a war of murders, a lot of blood. A lot of civilians are dying," said Natalia Svitlova, a refugee from Dnipro in eastern Ukraine who fled to Poland. "I don't understand why this is possible in the 21st century and why no one can stop it."
Moscow continued to press its offensive in eastern Ukraine, where little news has made it to the outside world since the war began on February 24. Russia, in withdrawing from the capital area in recent days after being thwarted in its bid to capture Kyiv, has said its main focus now is gaining control of the Donbas, the largely Russian-speaking industrial region in the country's east that includes Mariupol.
About two-thirds of the Russian troops around Kyiv have now left and are either in Belarus or on their way there, probably getting more supplies and reinforcements, said a senior US defence official who spoke on condition of anonymity to discuss an intelligence assessment.
Russian forces also appear to be repositioning artillery and troops to try to take the city of Izyum, which lies on a key route to the Donbas, the official said.
European allies, though united in outrage over the aftermath outside Kyiv, appeared split on how to respond.
Poland, which is on Ukraine's border and has taken in large numbers of refugees, angrily singled out France and Germany for not taking tougher action and urged Europe to quickly wean itself off Russian energy. But Germany said it would stick with a more gradual approach of phasing out coal and oil imports over the next several months.
Western and Ukrainian leaders have accused Russia of war crimes before, and the International Criminal Court's prosecutor has already opened an investigation. But the latest reports ratcheted up the condemnation.
European Union foreign policy chief Josep Borrell said "the Russian authorities are responsible for these atrocities, committed while they had effective control of the area".
French President Emmanuel Macron said there is "clear evidence of war crimes" in Bucha that demand new punitive measures. "I'm in favour of a new round of sanctions and in particular on coal and gasoline. We need to act," he said on France-Inter radio.
But Poland's prime minister, who described Russia under Putin as a "totalitarian-fascist state", called for actions "that will finally break Putin's war machine".
"Would you negotiate with Hitler, with Stalin, with Pol Pot?" Mateusz Morawiecki asked of Macron.
In announcing Germany's expulsion of Russian diplomats, Foreign Minister Annalena Baerbock said the images from Bucha reveal the "unbelievable brutality of the Russian leadership and those who follow its propaganda".
"We must fear similar images from many other places occupied by Russian troops in Ukraine."
The US and its allies have sought to punish Russia for the invasion by imposing sweeping sanctions but fear further harm to the global economy, which is still recovering from the pandemic. Europe is in a particular bind, since it gets 40 per cent of its gas and 25 per cent of its oil from Russia.
Putin's February 24 invasion has left thousands of people dead and forced more than 4 million Ukrainians to flee their country.
"The horrors that we've seen in Bucha are just the tip of the iceberg of all the crimes that have been committed by the Russian army on the territory of Ukraine so far," Ukrainian Foreign Minister Dmytro Kuleba said.
"And I can tell you without exaggeration but with great sorrow that the situation in Mariupol is much worse compared to what we've seen in Bucha and other cities, towns, and villages nearby Kyiv."
Putin has said the invasion is aimed at eliminating a security threat on Russia's doorstep and has demanded that Ukraine drop its bid to join Nato. Ukraine insists it never posed any threat but has offered to declare itself neutral.
Britain's Defence Ministry said Russia continues to flood soldiers and mercenaries into the Donbas. It said Russian troops are still trying to take Mariupol, which has seen weeks of heavy fighting and some of the worst suffering of the war.