Ukraine said it had also repulsed fresh attacks by Russian forces on the eastern front, rocked by weeks of fierce battles as Moscow tries to seize the industrial Donbas region.
Earlier, Zelensky vowed his troops would not give up the south of the country, after he visited the frontline there.
But Zelensky’s defiance came as NATO’s chief Jens Stoltenberg warned that the war could grind on “for years” and urged Western countries to be ready to offer long-term military, political and economic aid.
“We must not weaken in our support of Ukraine, even if the costs are high—not only in terms of military support but also because of rising energy and food prices,” Stoltenberg told German daily newspaper Bild.
British Prime Minister Boris Johnson issued a similar warning, saying a failure to provide sustained support for Kyiv would risk “the greatest victory for aggression” since World War II.
Ukraine has repeatedly urged Western countries to step up their deliveries of arms since the 24 February invasion, despite warnings from nuclear-armed Russia that it could trigger wider conflict.
Zelensky spoke Sunday after making a rare trip outside Kyiv a day earlier to the hold-out Black Sea city of Mykolaiv, where he visited troops nearby and in the neighbouring Odessa region for the first time since the invasion.
“We will not give away the south to anyone, we will return everything that’s ours and the sea will be Ukrainian and safe,” he said in a video posted on Telegram as he made his way back to Kyiv.
Russia’s defence ministry said on Sunday it launched missile strikes during the past 24 hours, with one attack by Kalibr missiles on a top-level Ukrainian military meeting near the city of Dnipro killing “more than 50 generals and officers”.
It said it also targeted a building housing Western-provided weapons in Mykolaiv, destroying “ten 155mm howitzers and around 20 armoured vehicles supplied by the West to the Kyiv regime over the last ten days”.
There was no independent verification of the claims.
Mykolaiv is a key target for Russia as it lies on the way to the strategic port of Odessa.
With Russia maintaining a blockade of Odessa that has trapped grain supplies and threatens a global food crisis, residents have turned their attention to rallying the home front effort.
“Every day, including the weekend, I come to make camouflage netting for the army,” said Natalia Pinchenkova, 49, behind a large Union flag, a show of thanks to Britain for its support for Ukraine.
The Ukraine war is fuelling not only a global food crisis but an energy crisis too.
Hit by punishing sanctions, Moscow has turned up the pressure on European economies by sharply reducing gas supplies, which has in turn sent energy prices soaring.
Germany on Sunday announced emergency measures including increased use of coal to ensure it meets its energy needs after a drop in the supply of Russian gas.
Austria was also turning to coal, with its government announcing Sunday that it will reopen a mothballed coal power station to combat the shortages—though the process could take months.
Italian company Eni meanwhile joined a huge Qatari project to expand production from the world’s biggest natural gas field, days after Russia slashed supplies to Italy.
The worst of the fighting continues to be in the eastern industrial Donbas region, with battles raging in villages outside the city of Severodonetsk, under unrelenting Russian fire for weeks.
Ukraine’s armed forces said Sunday they had pushed back Russian attacks on villages near Severodonetsk.
“Our units repulsed the assault in the area of Toshkivka,” the Ukrainian army said on Facebook, adding that Russian forces were also “storming” towards the village of Orikhove.
Zelensky said the fighting there was “fierce”—but he remained determinedly upbeat.
“Our army is holding on,” he said.