Apartment blocks were hit as the bombardment continued through the night in Marinka, west of the city.
The pro-Russian separatist rebel leadership and the government blamed each other for the attack.
On Friday, a rebel attack on a column of armour in Luhansk region killed at least 19 soldiers - one of the worst single losses suffered by the army.
President Petro Poroshenko vowed to retaliate, saying: "For every soldier's life, the militants will pay with tens and hundreds of their own."
The rebels, who declared independence in Donetsk and Luhansk in April, retreated towards the city of Donetsk last week after a government siege of their symbolic stronghold, Slavyansk.
More than 1,000 civilians and combatants are believed to have died in the fighting since April.
The EU slapped travel bans and asset freezes on 11 rebel figures in eastern Ukraine on Saturday.
The list includes the self-declared rebel prime ministers of the Donetsk and Luhansk "people's republics", Alexander Borodai and Marat Bashirov.
Local residents, some of whom were fleeing in panic, told the Associated Press news agency rocket strikes had come in every half-hour roughly between 23:00 local time on Friday (20:00 GMT) and 04:00 on Saturday.
Rebel commander Igor Strelkov said in a video statement (in Russian) on Saturday that the government had attacked Marinka with Grad and Uragan multiple rocket systems.
At least 30 people were killed as rockets fell on residential areas as well as factories, he said.
However, emergency services reported only four deaths.
Journalists based in Donetsk also said that it appeared the attack had come from Ukrainian forces, Reuters news agency reports.
However, Ukrainian security spokesman Andriy Lysenko accused the rebels of bombarding Marinka themselves with Grad rockets, Russia's Interfax news agency reports.
Quoting eyewitnesses, he said the damage there was "enormous" and people were still trapped under rubble.
He also accused the rebels of preventing rescue workers from reaching the scene.
The official mayor of Donetsk, Oleksandr Lukyanchenko, said on his website that public transport had stopped running to the Marinka area.
Government forces in Luhansk reported new fighting on Saturday in the area where the soldiers were killed early the previous day, apparently while their column was at a halt.
Unofficial reports suggest the death toll from Friday's attack, in which the rebels are said to have used Grad rockets, was much higher.
An unnamed officer who survived the attack told his wife by phone that more than 50 soldiers had been killed, Ukraine's Unian news agency reported on Friday.
On 13 June, rebels in Luhansk shot down a military transport plane, killing all 49 military personnel aboard - the army's worst single loss to date.
Mr Lysenko also said government warplanes had killed 1,000 rebels in attacks in the Donetsk region on Friday while the rebels denied suffering any significant losses.
Source: BBC News Europe