Ukraine has vowed to “fight absolutely to the end” in Mariupol where the port’s last-known pocket of resistance is holed up in a sprawling steel plant laced with tunnels.
Prime Minister Denys Shmyhal said Ukrainians would keep fighting in the ruined city, as Russian missiles and rockets also battered other parts of the country.
Witnesses reported multiple explosions in the city of Lviv early on Monday.
Lviv and the rest of western Ukraine have been less affected by the fighting than other parts of the country, and the city was considered to be a relatively safe haven.
Lviv Mayor Andriy Sadovyi said that five missiles struck the city and that emergency services were responding.
Oleksandr Kamyshin, the chairman of the Ukrainian rail service, said the strikes hit near railway facilities and there were no known casualties. He said train services have resumed with some delays and vowed to restore the damaged network.
The fall of Mariupol, which has been reduced to rubble in a seven-week siege, would give Moscow its biggest victory of the war. But a few thousand fighters, by Russia’s estimate, are holding on to the giant four-square-mile Azovstal steel mill.
“We will fight absolutely to the end, to the win, in this war,” Mr Shmyhal vowed on Sunday.
He said Ukraine is prepared to end the war through diplomacy if possible “but we do not have intention to surrender”.
Many Mariupol civilians, including children, are also sheltering at the Azovstal plant, Mikhail Vershinin, head of the city’s patrol police, told Mariupol television. He said they are hiding from Russian shelling and from any occupying Russian soldiers.
Capturing the city on the Sea of Azov would free up Russian troops for the expected new offensive to take control of the Donbas, in Ukraine’s industrial east.
It also would allow Russia to fully secure a land corridor to the Crimean Peninsula, which it seized from Ukraine in 2014, and deprive Ukraine of a major port and its prized industrial assets.
Russia is bent on capturing the Donbas, where Moscow-backed separatists already control some territory, since its attempt to take the capital Kyiv failed.
“We are doing everything to ensure the defence” of eastern Ukraine, Ukrainian President Volodymyr Zelensky said in his nightly address to the nation.
As for besieged Mariupol, there appeared to be little hope of military rescue by Ukrainian forces any time soon.
Foreign Minister Dmytro Kuleba said on Sunday that the remaining Ukrainian troops and civilians there are basically encircled.
He said they “continue their struggle” but that the city effectively does not exist any more because of massive destruction.
The relentless bombardment and street fighting in Mariupol have killed at least 21,000 people, by Ukrainian estimates.
A maternity hospital was hit by a lethal Russian air strike in the opening weeks of the war, and about 300 people were reported killed in the bombing of a theatre where civilians were taking shelter.
An estimated 100,000 people remained in the city out of a pre-war population of 450,000, trapped without food, water, heat or electricity.
Drone footage carried by the Russian news agency RIA-Novosti on Sunday showed mile after mile of shattered buildings and, on the city’s outskirts, the steel complex from which rose towering plumes of smoke.
Ukrainian Deputy Defence Minister Hanna Malyar described Mariupol as a “shield defending Ukraine”.
Russian forces, meanwhile, carried out aerial attacks near Kyiv and elsewhere in an apparent effort to weaken Ukraine’s military capacity ahead of the anticipated assault on the Donbas.
After the humiliating sinking of the flagship of Russia’s Black Sea Fleet last week in what the Ukrainians boasted was a missile attack, the Kremlin has vowed to step up strikes on the capital.
Russia said on Sunday that it had attacked an ammunition plant near Kyiv overnight with precision-guided missiles, the third such strike in as many days.
Explosions were also reported in Kramatorsk, the eastern city where rockets earlier this month killed at least 57 people at a train station crowded with civilians trying to evacuate ahead of the Russian offensive.