At least five people, including two women aged 32 and 95, have been killed after a Russian rocket hit an apartment building in Lviv, western Ukraine.
Another 34 people were injured in what the mayor of Lviv described as “one of the biggest attacks” on the city’s civilian infrastructure.
Lviv regional head Maksym Kozytskyi said more than 30 homes had been destroyed.
Hours after the strike, Russia said its “missiles hit all Ukraine targets”.
Its defence ministry said points of temporary deployment of Ukrainian troops and depots storing foreign-made armoured vehicles were hit using sea-based “long-range precision weapons”.
President Volodymyr Zelensky vowed a “tangible” response to the overnight assault by “Russian terrorists”.
Writing on Telegram, Mr Kozytskyi initially said the youngest victim was 21 and the oldest was 95, but he gave an update with corrected details.
He named the victims as Anastasia, 32, Myroslava, 60, Mykhaylo, 35, and Iryna, 63.
Mr Kozytskyi then said a fifth body, of a woman, had been recovered from the rubble.
He said emergency services were still working to clear debris and rescue more people who are feared to be trapped.
“There is a shelter next to the house that was hit by the missile,” he added.
“It is in good condition and was open at the time of the alarm. But, only five people were in the shelter from the entire building. Very disappointing.”
One witness called Olya told the BBC she was woken by the first explosion but didn’t have time to leave the apartment when she heard a second blast.
“The ceiling started to fall,” she said. “My mother was immediately hit, I jumped out and I was covered in rubble only about knee-deep.
“I tried to reach my mother, but I couldn’t, I got to the window, started screaming, and in about half an hour the rescuers got to me, took me out and took me to the hospital.
“I came back and found out that my mother had died, my neighbours had died. At this point, it seems that I was the only one who survived from the fourth floor.
Dr Sasha Dovzhyk, who works at the Ukrainian Institute London but is currently in Lviv, described hiding in her bathroom when she heard the air raid siren.
“This is what we are supposed to do,” she told the BBC. “This is the Ukrainian routine.
“You are supposed to put two walls and preferably no windows, no glass, between yourself and the street, the outside.
“When the rocket, the missile, a Kalibr missile as we know now, hit the residential building 2km away, the walls in the bathroom where I was hiding shook, so the impact was quite strong.”
Ukraine’s air force accused Russia of launching missiles from the Black Sea.
Posting on Telegram, the Armed Forces of Ukraine said “seven out of 10 Kalibr cruise missiles” were shot down, but said one rocket “changed course” to the west and hit Lviv.
The BBC has been unable to verify these claims.
For months, Russia has been carrying out deadly missile and drone attacks on Ukrainian cities, often hitting civilian targets and causing widespread blackouts.
Last week, 13 people were killed – including children – when a restaurant and shopping centre were struck in Kramatorsk, an eastern city close to Russian-occupied parts of Ukraine.
Although Lviv is in western Ukraine, relatively far from the front lines in southern and eastern Ukraine, it has also previously suffered Russian attacks.
Last month, Lviv officials reported that critical infrastructure had been hit in the city in a drone attack.