Indiscriminate rocket fire has hit a market, schools, homes and shops in the eastern Ukrainian city of Mariupol, killing at least 30 people, authorities said.
Ukrainian officials rushed to defend the strategically important port city as the separatists' top leader declared that an offensive against it had begun. He later toned down his statement as the scale of civilian casualties became evident.
President Petro Poroshenko called an emergency meeting of his military officials and cut short a trip to Saudi Arabia to coordinate the government's response.
Military positions in the city were strengthened and forces were being built up, Defence Minister Stepan Poltorak said.
Mr Poroshenko called the attacks on Mariupol a terrorist act.
"The time has come to name their sponsors. The help given to militants, weapons deliveries, equipment and the training of manpower - is this not aiding terrorism?" he said.
Russia insists it does not support the rebels, but Western military officials say the sheer number of heavy weapons under rebel control belies that claim.
The Donetsk regional government loyal to Kiev said at least 30 people - including a 15-year old girl and a five-year old boy - have died in the attacks. A Ukrainian military checkpoint near the city was also hit and one serviceman was killed, the Defence Ministry said.
It came a day after the rebels rejected a peace deal and announced they were going on a multi-prong offensive against the government in Kiev to vastly increase their territory.
The rebel stance has upended European attempts to mediate an end to the fighting in eastern Ukraine, which the UN says has killed nearly 5,100 people since April.
Mariupol, which lies on the Azov Sea, is the major city between mainland Russia and the Russia-annexed Crimean Peninsula.
Heavy fighting in the region in the fall raised fears that Russian-backed separatist forces would try to take over the city to establish a land link between Russia and Crimea.
Ukraine's Defence Ministry said three separate strikes from Grad multiple-rocket launchers have hit Mariupol and surrounding areas.
"The area that came under attack was massive," Mariupol mayor Yuriy Khotlubei said. "The shelling was carried out by militants. This is very clearly Russian aggression that has caused terrible losses for the residents of the eastern part of our city."
The RIA Novosti news agency said Ukrainian rebel leader Alexander Zakharchenko claimed an offensive had begun on Mariupol.
He spoke as he laid a wreath where at least eight civilians died when a bus stop was shelled on Thursday in Donetsk, the largest rebel-held city in eastern Ukraine.
Mr Zakharchenko swiftly backtracked, however, saying that Ukrainian defences of Mariupol would be destroyed but the city itself would not be stormed. He denied that his forces were responsible for today's carnage, saying it was caused by Ukrainian error.
But the Organisation for Security and Cooperation's monitoring mission said the attack in Mariupol was caused by Grad and Uragan rockets fired from areas under rebel control.
Rebel forces have positions 10 kilometres (six miles) from Mariupol's eastern outskirts. On January 13, a bus near an army checkpoint north of Mariupol was hit by a shell, killing 13 people, an attack Ukraine blamed on the separatists.
Yulia, a Mariupol citizen, said her stricken neighbourhood was cut off from power and heating in the middle of winter. Many residents boarded up their windows, fearing shattered glass from further attacks, she said.
Reinforcements were being drafted into the city and the Mariupol-based Azov Battalion was being equipped with more heavy weaponry, interior minister Arsen Avakov said on Facebook.
Security services also detained a spotter suspected of giving rebel fighters coordinates to launch rockets, he said.
Prime minister Arseniy Yatsenyuk on Friday had ordered regional leaders to draw up economic blueprints to put the country on a war footing. Ukraine began its fourth wave of mobilisation this week, building up manpower for its faltering war effort.
Fighting has also been intensifying recently for the government-held town of Debaltseve, 50 kilometres (31 miles) east of Donetsk. Main roads into the town are under separatist control and rebels have vowed to fully encircle Ukrainian forces there.
Responding to the Mariupol attack, EU foreign affairs chief Federica Mogherini urged Russia to use its influence over the separatist leaders to halt their offensive and urged Moscow to desist from providing military and financial support to rebels.
Nato secretary general Jens Stoltenberg condemned the Mariupol shelling and what he said was the increased presence of Russian forces in Ukraine.
"Russian troops in eastern Ukraine are supporting these offensive operations with command-and-control systems, air defense systems with advanced surface-to-air missiles, unmanned aerial systems, advanced multiple rocket launcher systems, and electronic warfare systems," he said.
A peace deal signed in September in the Belarusian capital of Minsk envisaged a cease-fire and a pullout of heavy weapons from a division line in eastern Ukraine, but it has been repeatedly violated by both sides.
The foreign ministers from Russia, Ukraine, France and Germany agreed on Wednesday to revive that division line but the rebels yesterday rejected the whole Minsk deal.
Senior envoys from Ukraine, Russia and the OSCE issued a statement today convening an urgent meeting next week to restart the Minsk peace process.
Despite the diplomatic efforts, fighting has continued unabated. On Thursday, mortars rained down on Donetsk, hitting a bus. Rebels said 13 were killed in that attack, while OSCE monitors said eight bodies were received at the city morgue.