Russia says it has “liberated” the city with only a few thousand Ukrainian soldiers remaining in the Azovstal factory complex, where thousands of civilians are also said to have sought refuge.
But Zelenskyy said the battle continued, with Russia “doing everything it can to have a reason to talk about at least some victories”.
“They can only postpone the inevitable – the time when the invaders have to leave our territory, especially Mariupol, a city that continues to resist Russia despite everything the occupiers say,” he said in a video speech.
The southern port city has been the target of relentless Russian attacks as Moscow attempts to create a land bridge linking annexed Crimea to the Russian-based separatist states in the Donbas region.
Ukrainian officials have called for an immediate humanitarian corridor to allow civilians and injured fighters to exit the sprawling Azovstal steel plant.
“They are running out of food, water and essential medicines,” Ukraine’s foreign ministry said.
On Thursday, three school buses carrying evacuees arrived in the city of Zaporizhzhya after leaving Mariupol and crossing Russian territory.
“I don’t want to hear any more bombings,” said Tatiana Dorash, 34, who arrived with her six-year-old son Maxim.
She said all they wanted now was a quiet night and “a bed to sleep in.”
Ukrainian officials had hoped to evacuate many more civilians but accused Russian troops of following a route used by fleeing civilians.
“Our apologies to the people of Mariupol who have been waiting for evacuation today to no avail,” Ukrainian Deputy Prime Minister Iryna Vereshuk said on Telegram.
“Firing started near the assembly point, forcing the corridor to close. Dear Mariupol residents… we won’t give up trying to get you out of there! Hold on!”
Zelenksy said Russia had rejected a proposed ceasefire over the Orthodox Christian Easter holiday this weekend.
And he accused Russia of laying the groundwork for a referendum to strengthen its control over areas in eastern Ukraine, urging locals not to give personal information to Moscow’s troops.
“This is intended to falsify the so-called referendum on your country, if an order comes from Moscow to put on such a show,” he warned.
In Moscow, President Vladimir Putin praised the “liberation” of Mariupol as a “success” for the Russian armed forces and ordered a siege of the factory in Azovstal.
“There is no need to climb into these catacombs and crawl underground through these industrial facilities. Block this industrial area so that not even a fly can escape,” Putin said.
As Moscow intensifies its attacks in eastern Ukraine, the West is also ramping up military aid, including $800 million in new aid from Washington, as announced Thursday by President Joe Biden.
The Pentagon said the package included howitzers, armored vehicles to tow them, 144,000 ammunition and tactical drones specially developed by the US Air Force to serve Ukraine’s needs.
“We are now at a critical stage…where they are going to set the stage for the next phase of this war,” Biden said, pledging that Putin “would never succeed in dominating and occupying all of Ukraine.”
“That won’t happen,” he added.
Zelenskyy told leaders of the International Monetary Fund and the World Bank on Thursday that his country now needs $7 billion a month to function, and accused Russia of “destroying all objects in Ukraine that could serve as an economic base for life.”
Meanwhile, the Spanish and Danish prime ministers visited Kiev as a new expression of support and promised more military aid.
And Germany, under fire for not giving more to Zelenskyy’s government, said it had agreed with Eastern European partners to indirectly supply Ukraine with heavy weapons by replacing the stockpile given to Kiev.
Efforts to isolate Moscow continued, with Biden announcing a ban on Russia-affiliated ships using US ports and the Organization of American States suspending Russia as a permanent observer.
Moscow announced its new countermeasures, lifting the travel ban on US Vice President Kamala Harris and dozens of other prominent Americans and Canadians.
Meanwhile, the grim task around the Ukrainian capital continued to exhume and catalog the bodies left behind after Russia’s withdrawal.
Spanish Prime Minister Pedro Sanchez, who visited Borodianka near the capital, said he was “shocked to witness the horrors and atrocities of Putin’s war”.
Ukrainian officials say the bodies of more than 1,000 civilians have been retrieved from areas around the capital, and they are working with French investigators to document alleged war crimes.
“It’s all under investigation,” Oleksandr Pavliuk, head of the Kiev regional military administration, told reporters. “There is no definitive number of civilian casualties.”
“Forensic experts are now examining the bodies, but what we saw was hands tied behind their backs, their legs bound and shot through the limbs and the back of the head,” he said.
And US private satellite imagery website Maxar has released photos it claims showed a “mass grave” on the northwestern outskirts of Manhush, 20 kilometers (12 miles) west of Mariupol.
The violence has displaced more than 7.7 million people internally and more than five million have fled to other countries, according to UN estimates, in Europe’s worst refugee crisis since World War II.
But in recent weeks, returns have also accelerated, reaching more than a million, according to a spokesman for the Kiev Border Forces, despite the risk.
In the village of Moshchun, northwest of Kiev, returnees must sign a waiver acknowledging the risk of death or mutilation from leftover ammunition.
Olena Klymenko was willing to take the risk and return to the site of her destroyed home while mine clearance efforts continued in the village.
“We have found a trap in our garden. It appears that it has been disarmed. We do not know,” she told AFP.
“Still, we have to find our stuff.”