The mayor of Mariupol's office said 97 people were also wounded by dozens of long-distance rockets that smashed into a packed residential district and open market early in the morning and then again shortly after noon.
World leaders on Sunday ramped up pressure on Moscow to stop pro-Kremlin rebels from pursuing a major new Ukrainian offensive after rockets killed 30 people in a strategic government-held port.
"Obviously, everyone in the city is very scared," Mariupol native Eduard told AFP.
A fellow resident named Pavlo described dazed survivors helping wounded victims to climb out of the concrete rubble of Soviet-era apartment blocks and navigate streets strewn with shattered glass.
Leader of the self-proclaimed Donetsk People's Republic Alexander Zakharchenko on Saturday claimed that "today, we launched an offensive against Mariupol".
He later denied ordering an actual invasion of the industrial Sea of Azov port of half million and his deputy rejected responsibility for the civilian deaths.
But the Organization for Security and Co-operation in Europe (OSCE) said the Grad and Uragan rocket fire came from two locations "controlled by the 'Donetsk People's Republic'".
The attack on the last Kiev-controlled major city in Ukraine's restive east drew ire from Western leaders who blame Moscow for stoking the conflict that has claimed more than 5,000 lives.
Ukrainian President Petro Poroshenko -- a pro-Western leader who cut short a trip to Saudi Arabia to chair an emergency National Security and Defence Council meeting in Kiev on Sunday -- vowed to "defend our motherland the way real patriots do -- until a full victory".
US Vice President Joe Biden warned that costs would "continue to rise" on Russia for its intervention against its western Soviet-era neighbour and military support for the revolt -- a charge Moscow flatly denies.
And EU foreign policy chief Federica Mogherini warned that the latest escalation "would inevitably lead to a further grave deterioration of relations between the EU and Russia".
But both the Kremlin and Russia's foreign ministry remained conspicuously silent about Saturday's attack.
Russian President Vladimir Putin on Friday accused Kiev's leaders of launching "large-scale combat operations" in its eastern belt in violation of a tattered September truce.
'Tribute for our dead'
"Why is Moscow silent on the crime committed by terrorists in Mariupol?" Ukrainian Foreign Minister Pavlo Klimkin asked in a Twitter message.
The sprawling seaside port remained calm overnight and early Sunday as international monitors patrolled its muddied streets.
Rebel leader Zakharchenko gave a mixed message in the wake of the bloodshed, calling the potential capture of Mariupol on Saturday "the best tribute possible for all our dead" but adding that his troops were "saving their strength" and not conducting any "active" operations in the port.
Western leaders watched with worry as violence once again threatened to spiral out of control in what is already one of Europe's deadliest and most diplomatically-explosive crises since the Cold War.
Washington and Brussels have both imposed sanctions on Russia for its March seizure of Crimea and backing of the separatists.
Link to Crimea
US Secretary of State John Kerry called on Russia to "end its support for separatists immediately, close the international border with Ukraine and withdraw all weapons, fighters and financial backing".
NATO Secretary General Jens Stoltenberg also urged Russia to "stop destabilising Ukraine".
Mariupol provides a land bridge between guerrilla-held regions to the east and the Black Sea peninsula of Crimea that Russia annexed from Ukraine last March.
It is also the gateway for most of the southeast's vital coal and steel exports as well as home to two of Ukraine's largest smelter.
A rebel assault on the port in late August saw Kiev repel the attack at such heavy cost that it prompted Poroshenko to pursue peace and offer the rebels three years of limited self-rule.
But the ceasefire was followed by further clashes that killed at least 1,500 people and that resumed in full in mid-January after a three week lull.
Western diplomats linked the rebel's advance to a new infusion of Russian troops -- firmly denied by the Kremlin -- designed to expand separatist holdings before the signing of a final truce and land demarcation agreement.
Ukraine claimed on Monday that Moscow had poured nearly 1,000 more Russian soldiers and dozens of tanks into the southeast in order to secure control over factories and coal mines that could help the rebels build their own state.
"Taking Mariupol is a first step to a broader offensive. It is also an end in itself, anchoring the southern flank in the city," the US-based Stratfor global intelligence company warned in special "red alert" issued to clients.
By Laetitia Peron and Dmitry Zaks in Kiev (AFP)