Ukraine said it had survived a months-long winter onslaught of Russian strikes on water and energy infrastructure, as it marked the first day of spring Wednesday.
But Kyiv was under intense pressure in eastern Ukraine, while Moscow said it had downed a "massive" barrage of Ukrainian drones launched at the Crimean peninsula, annexed by the Kremlin in 2014.
Since October, Russia has been pummelling key facilities in Ukraine with missiles and drones, disrupting millions of people's water, heating and electricity supplies.
President Volodymyr Zelensky praised Ukrainians for surviving a winter marked by systematic Russian strikes on energy facilities, which plunged millions into darkness and cold.
"We have overcome this winter. It was a very difficult period, and every Ukrainian experienced this difficulty, but we were still able to provide Ukraine with power and heat," Zelensky said in his daily address.
Foreign Minister Dmytro Kuleba hailed the first day of spring as another "major defeat" for Russian President Vladimir Putin's war in Ukraine.
"We survived the most difficult winter in our history. It was cold and dark, but we were unbreakable," Kuleba said in a statement.
Aid organizations had warned at the beginning of winter that the targeted campaign would force a new wave of migration to Europe and that Ukraine's priority would be "survival" through the months of freezing temperatures.
The Kremlin said Kyiv was responsible for civilians' suffering stemming from the massive outages because it had refused to capitulate to Moscow's war demands.
'Choke on your missiles'
But the grid has been stabilizing and Ukrainian energy provider Ukrenergo said Wednesday there had been "no power deficit" for more than two weeks.
"Engineers are also continuing repairs at all power system facilities that were previously damaged by Russian missile and drone attacks," it said.
The war in Ukraine has seen Europe question its deep reliance on Russian oil and gas amid waves of sanctions aimed at stemming Moscow's ability to fund its military through energy revenues.
"The EU also won, and contrary to Moscow's laughter, it did not freeze without Russian gas. One piece of advice to Russia: choke on your gas and choke on your missiles," Kuleba added in the statement.
The foreign minister's comments came as fighting appears to be reaching a precarious moment for Kyiv, with a missile on Wednesday night hitting the town of Zaporizhzhia in eastern Ukraine — a region regularly targeted by Russian strikes.
Two people died in the attack, according to Anatoliy Kurtev, secretary of Zaporizhzhia city council, who added on his Telegram channel that there were still civilians trapped under building rubble.
Further east near Bakhmut — the site of the longest and bloodiest battle of Russia's invasion — AFP journalists saw Ukrainian forces close roads towards the embattled salt-mining town, raising the specter of a possible Ukrainian withdrawal.
But Sergiy Cherevaty, a spokesman for Ukrainian forces deployed in the east of the country, said "no such decision had been taken so far."
"Heavy battles are ongoing for our Bakhmut," the head of the city's military administration Oleksiy Reva said.
The city, which once had a population of around 70,000, has seen a gradual exodus and now only 4,500 people remain, Reva said.
Zelensky said Tuesday the fighting around Bakhmut was "increasing."
"Russia does not count people at all, sending them to constantly assault our positions," he added.
'You cannot help'
Elsewhere in the Donetsk region, the cost of fighting was clear at a field hospital where AFP journalists saw wounded Ukrainian soldiers being treated.
"You remember the extraordinary cases, where people have fatal injuries. Partially severed heads, torn or cut main vessels, where you cannot help the patient. That is what you remember," said Igor, a 28-year-old anaesthesiologist.
The Ukrainian presidency said Wednesday that Russian attacks in the region of Donetsk had left three civilians dead and another four injured.
Shelling in the southern Kherson region injured a one-year-old and his mother, according to local authorities.
The Russian Defense Ministry's announcement that it had downed or disabled 10 Ukrainian drones targeting Crimea came one day after Russian officials said they had shot down three more over southern regions of the country and near Moscow.
"An attempt by the Kyiv regime to carry out a massive drone attack on the facilities of the Crimean peninsula has been prevented," the Defense Ministry said.
Ten drones were either "shot down" or "disabled," it said in the statement.
Ukrainian presidential aide Mykhaylo Podolyak said earlier Wednesday that Kyiv was not responsible for attacks in Russia.
"Ukraine doesn't strike at Russian territory. Ukraine is waging a defensive war to de-occupy all its territories," he wrote on social media.