Three people, including a child, were killed in a Russian strike on a maternity and children’s hospital in the city of Mariupol, officials say.
President Volodymyr Zelensky said people were trapped under the wreckage, and called the attack a war crime.
He also posted footage apparently from inside the hospital, which appeared badly damaged.
Some 17 people were also injured, including staff and patients, local officials said.
Pavlo Kyrylenko, the head of the Donetsk regional administration which includes the port city of Mariupol, said no deaths had been confirmed, and there were no confirmed injuries amongst children. He said the attack happened during an agreed ceasefire with the Russian side, according to Interfax Ukraine.
The Mariupol city council said the strike had caused “colossal damage”, and published footage showing burned out buildings, destroyed cars and a huge crater outside the hospital. The BBC has verified the location of the videos.
“We don’t understand how it’s possible in modern life to bomb a children’s hospital. People cannot believe that it’s true,” Mariupol Deputy Mayor Serhiy Orlov told the BBC.
President Zelensky, speaking Russian rather than Ukrainian for part of his latest video address, said the attack was a war crime.
“What kind of a country is Russia, that it is afraid of hospitals and maternity wards and destroys them?” he asked.
On Thursday the Kremlin said it would seek information from the Russian military about what had happened.
The White House condemned the “barbaric” use of force against innocent civilians, and UK Prime Minister Boris Johnson tweeted that “there are few things more depraved than targeting the vulnerable and defenceless”.
Mariupol has been surrounded by Russian forces for several days, and repeated attempts at a ceasefire to allow civilians to leave have broken down.
“The whole city remains without electricity, water, food, whatever and people are dying because of dehydration,” Olena Stokoz of Ukraine’s Red Cross told the BBC, adding that her organisation would continue trying to organise an evacuation corridor.
Deputy Mayor Orlov said at least 1,170 civilians had been killed in the city since Russia began its bombardment, and that 47 people there were buried in a mass grave on Wednesday, although those figures have not been independently verified.
The UN says it has verified 516 civilian deaths across Ukraine, but it believes the real figures are “considerably higher”.
Russia insists that it does not target civilian infrastructure in Ukraine.
Meanwhile, around 48,000 Ukrainians have been evacuated through humanitarian corridors around the country, according to the deputy head of the presidential administration, Kyrylo Tymoshenko.
The majority of them – 43,000 – left the city of Sumy in eastern Ukraine close to the Russian border.
A further 3,500 were evacuated from towns on the outskirts of Kyiv which have come under heavy shelling and are mostly occupied by Russian forces. Some civilians were able to leave Irpin, north-west of Kyiv, which was the site of heavy shelling earlier this week sparking scenes of panic as residents were forced to evacuate using a makeshift bridge.
Over 1,000 civilians travelled in a convoy from Enerhodar in the south to the city of Zaporizhzhia.
Ukraine’s armed forces agreed to stop firing on Wednesday along six evacuation routes for 12 hours, from 09:00 to 21:00 local time (07:00 to 19:00 GMT).
Moscow said it would honour the ceasefire, but Russian shelling continued with further reports of civilian deaths.
Another key corridor from Izyum, south-east of Kharkiv, had to be halted because of Russian bombardment.