Russian forces fired cruise missiles at the southern Ukrainian city of Odesa on Saturday and bombarded a besieged steel mill in Mariupol, hoping to complete their conquest of the port in time for Victory Day celebrations.
Ukraine announced that all women, children and older adults had been evacuated from the mill, a key Russian war objective.
In a sign of the unexpectedly effective defence that has sustained the fighting into its 11th week, Ukraine's military flattened Russian positions on a Black Sea island that was captured in the war's first days and has become a symbol of resistance. Western military analysts also said a Ukrainian counteroffensive was advancing around the nation's second-largest city, Kharkiv, even as it remained a key target of Russian shelling.
The largest European conflict since World War II has developed into a punishing war of attrition that has killed thousands of people, forced millions to flee their homes and destroyed large swaths of some cities.
Ukrainian leaders warned that attacks would only increase in the lead-up to Russia's Monday holiday commemorating Nazi Germany's defeat 77 years ago, and President Volodymyr Zelenskyy urged people to heed air raid warnings.
US Secretary of State Antony Blinken said on Saturday that Zelenskyy and his people "embody the spirit of those who prevailed during the Second World War".
He accused Russian President Vladimir Putin of trying "to twist history to attempt to justify his unprovoked and brutal war against Ukraine."
"As war again rages in Europe, we must increase our resolve to resist those who now seek to manipulate historical memory in order to advance their own ambitions," Blinken said in a statement as the United States and the United Kingdom marked the Allied victory in Europe.
The most intense fighting in recent days has been in eastern Ukraine, where the two sides are entrenched in a fierce battle to capture or reclaim territory. Moscow's offensive there has focused on the industrial Donbas region, where Russia-backed separatists have been fighting since 2014 and occupy some areas.
Moscow also has sought to sweep across southern Ukraine to both cut off the country from the sea and connect its territory to the breakaway Moldovan region of Transnistria, long home to Russian troops. But it has struggled to achieve those objectives.
On Saturday, six Russian cruise missiles fired from aircraft hit the region of Odesa, where authorities have a curfew in place until Tuesday morning. Videos posted on social media showed thick black smoke rising over the city as sirens wailed.
Satellite photos analysed by the Associated Press showed Ukraine targeting Russian-held Snake Island in a bid to impede Russia's efforts to control the Black Sea. An image taken early Saturday by Planet Labs PBC showed most of the island's buildings had been destroyed by Ukrainian drone attacks, as well as what appeared to be a Serna-class landing craft against the island's northern beach.
The image corresponds with a Ukrainian military video showing a drone striking the Russian vessel, engulfing it in flames. Snake Island, located 35km off the coast, figured in a memorable incident early in the war when Ukrainian border guards stationed there defied Russian orders to surrender, purportedly using colourful language.
In Mariupol, Ukrainian fighters made a final stand against a complete Russian takeover of the strategically important city, which would give Moscow a land bridge to the Crimea Peninsula, annexed from Ukraine during a 2014 invasion.
Satellite photos shot by Planet Labs PBC showed vast devastation at the sprawling Azovstal seaside steel mill, the last pocket of Ukrainian resistance in the city. Buildings had gaping holes in the roofs, including one under which hundreds of fighters are likely hiding.
Rescuers finished the evacuation of civilians after a week of Russian shelling and on-and-off convoys to get people out of Mariupol.
"The president's order has been carried out: All women, children and the elderly have been evacuated from Azovstal," Deputy Prime Minister Iryna Vereshchuk said, without elaborating. "This part of the Mariupol humanitarian operation has been completed."
Russian Mikhail Mizintsev also confirmed the evacuations.
The Russian news agency Tass had reported that 50 civilians were evacuated on Saturday, a day after a similar number left. The latest evacuees followed roughly 500 others who were allowed to leave the plant and other parts of the city in recent days.
The situation at the plant has drawn the world's attention, and the United Nations and the International Committee of the Red Cross are desperately trying to organise evacuations.
In recent days, fighters inside had described bringing out small groups of civilians who had been hiding there for weeks. The fighters said via social media both they and the Russians have used a white flag system to halt fighting in order to get civilians out.
But Russian forces have intensified fire on the mill with mortars, artillery, truck-mounted rocket systems, aerial bombardment and shelling from the sea, making evacuation operations difficult.
Three Ukrainian fighters were killed and six more were wounded during the evacuation attempt. Sviatoslav Palamar, the deputy commander of the Azov Regiment, said his troops had waved white flags and accused Russian forces of firing an anti-tank weapon at a vehicle.
It remains unclear what will happen to the estimated 2000 fighters at Azovstal, both those still in combat and the hundreds believed to be wounded. In recent days the Ukrainian government has been reaching out to international organisations to try to secure safe passage for them. The fighters have repeatedly vowed not to surrender.
Zelenskyy said early on Saturday that "influential states" were involved in efforts to rescue the soldiers. He did not mention any by name, but added "we are also working on diplomatic options".
Russian forces have probed the plant and even reached into its warren of tunnels, according to Ukrainian officials.
But they struggled to make significant gains elsewhere in the country.
Kharkiv, which was the first Soviet capital in Ukraine and had a pre-war population of about 1.4 million, remained a key target of Russian shelling in the northeast. Russian Defence Ministry spokesman Igor Konashenkov said the Russian military also hit large shipments of weapons from the US and other Western countries with Iskander missiles in the region. His claims couldn't be independently verified.
But Western military analysts said Ukrainian forces were making progress in securing positions around the city. The Ukrainian army said it retook control of five villages in the area and part of a sixth.
A Washington-based think tank, the Institute for the Study of War, said in its most recent assessment that Ukraine may be able to push Russian forces "out of artillery range of Kharkiv in the coming days," providing a respite for the city and an opportunity to build the defenders' momentum "into a successful, broader counteroffensive".
Also, a Russian missile destroyed a national museum in the Kharkiv region dedicated to the life and work of 18th-century philosopher Gregory Skovoroda, the local council said. It posted photographs on Facebook showing the building engulfed in flames.
And in another eastern region, Luhansk, Serhiy Haidai said two boys aged 11 and 14 were killed by Russian shelling in the town of Pryvillia, while two girls aged 8 and 12 and a 69-year-old woman were wounded.