Ukraine's top rebel leader said an offensive had begun on the strategically important port.
Ukraine's president called an emergency meeting of his military officials and cut short a trip to Saudi Arabia to rush back to coordinate the government's response.
The rocket attacks 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.
Also Read
The RIA Novosti news agency cited Ukrainian rebel leader Alexander Zakharchenko as saying that 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 in Donetsk, the largest rebel-held city in eastern Ukraine.
Rebel forces have positions within 10 kilometers from Mariupol's eastern outskirts.
"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."
By the evening, Khotlubei said the death toll had risen to 29. There was no immediate report of how many people died in each location.
A Ukrainian military checkpoint on a road out of the city toward rebel-held areas was also hit and one serviceman was killed, the Defense Ministry said.
"On the contrary, all units are on fully battle-ready. Security measures in the city have been strengthened," the council said in a statement, adding that no armed separatist units had been seen moving toward the city.