The missile strike, which wrecked a trolleybus and blew out windows nearby, followed a night of intense fighting at the city's main airport and diplomatic talks in Berlin involving Ukraine and Russia.
An artillery shell or mortar struck a public transport stop in the rebel-controlled city of Donetsk in eastern Ukraine on Thursday, killing at least eight civilians in an incident which both sides blamed on the other.
Rebel leader Alexander Zakharchenko called on local residents to gather at the scene of the trolleybus attack, promising them the opportunity to confront captured Ukrainian servicemen. Separately, video footage showed a handcuffed Kiev prisoner being shouted at and punched by civilians near the trolleybus.
Military spokesman Vladislav Seleznyov said 10 Ukrainian soldiers were killed overnight, six at the airport complex, a symbolic target where a small group of government defenders have been holding out against Russian-backed separatists for months.
The spokesman later said government forces had withdrawn from the airport's new terminal, the core of the complex.
"We continue to control the southern part of the airport ... we left the new terminal because it looks like a sieve and there's simply nowhere to hide there," Seleznyov said.
It was not clear what sort of missile hit the trolleybus or who fired it. Each side blamed the other.
A Reuters cameraman saw six bodies near, and inside, a gutted trolleybus in Bosse, a southern district of the city. A video clip showed the hulk of the trolleybus with its windows blown out and smoke pouring from a nearby passenger car.
Regional officials put the number of dead at eight, though rebel statements suggested a higher death toll.
Ukrainian Prime Minister Arseny Yatseniuk said it was the work of separatists and that Russia, which Kiev says is arming the rebels and giving them military support on the ground, "bears responsibility".
Russia blamed Ukraine, condemning the attack as a "crude provocation aimed at undermining efforts to seek a peaceful solution of the Ukrainian crisis."
Modest progress appeared to have been made in four-way talks late on Wednesday in Berlin involving Ukraine, Russia, Germany and France on the crisis.
German Foreign Minister Frank-Walter Steinmeier said foreign ministers had agreed a "demarcation line" between pro-Russian fighters and Kiev's forces from which withdrawal of heavy weapons could start. There were no details.
A joint statement issued by the German foreign ministry said tangible progress on implementation of a 12-point protocol drawn up in Minsk in September had to be achieved before a summit was possible.