Many people died when rockets and mortars hit vehicles moving refugees from the Luhansk area of eastern Ukraine, the Ukrainian military says.
Ukraine has blamed pro-Russian rebels but they have denied carrying out the attack, near the village of Novosvitlivka.
A rebel news outlet reported a heavy exchange of artillery fire in the area.
Ukrainian forces have moved into the outskirts of rebel-held Luhansk where basic supplies are running out.
Military spokesman Andriy Lysenko said "militants" armed by Russia had fired at a refugee convoy with mortars and Grad rockets, on a road east of Luhansk.
He said "dozens" of civilians had died, including women and children.
"The convoy had white flags and was marked as civilian," Mr Lysenko said.
Another military spokesman said people had been burned alive inside their vehicles.
A spokesman for the rebel self-proclaimed "Donetsk People's Republic", Andrei Purgin, denied that rebel forces had attacked the convoy.
"The Ukrainians themselves have bombed the road constantly with planes and Grads. It seems they've now killed more civilians like they've been doing for months now," he was quoted as saying.
Alexander Zakharchenko, a rebel leader in Donetsk, told journalists: "Not a single convoy of refugees was shot at in the Luhansk region."
There has been sustained artillery shelling of Luhansk, a city of 250,000 people, where civilians are suffering chronic shortages of water, food and electricity. Before the conflict, the population was closer to 420,000.
Hundreds of civilians are fleeing the city every day as Ukrainian forces edge into Luhansk.
The key rebel-held town of Horlivka near Donetsk has been encircled, military officials say, in another sign that the separatists have lost ground in recent days.
Also on Monday, the rebel-led administration in Donetsk said they had introduced the death penalty for offences including treason, desertion and sabotage.
Eduard Yakubovsky, acting prosecutor-general of the self-proclaimed Donetsk People's Republic, said the penalty would also cover "military crimes committed... on the battlefield, such as handing over military hardware or weapons".
Observers said the move could indicate problems within the rebels' ranks.
More than 2,000 civilians and combatants have been killed since mid-April, when Ukraine's government sent troops to put down the rebel uprising in the east.
Eastern Ukraine - the increasing human cost
- At least 2,119 have died since mid-April, including at least 20 children
- 5,043 people have been wounded in east Ukraine as of 13 August
- On average 60 casualties per day
- 155,800 people internally displaced
- 188,000 have fled to Russia
- 22,000 people have fled Donetsk and Luhansk in a five-day period last week
Russia has said an aid convoy of some 270 lorries to a base near the Ukrainian border. The lorries are parked close to a rebel-held border post awaiting inspection as the Red Cross wants security guarantees before the aid can enter Ukraine.
Earlier Russia's Foreign Minister Sergei Lavrov said full agreement had been reached on the aid convoy after talks in Berlin with his counterparts from Ukraine, Germany and France.
But he said no deal had been reached on achieving a ceasefire.
German Foreign Minister Frank-Walter Steinmeier said "the aim remains to bring about a ceasefire in Ukraine and to prevent future victims". He said the talks in Berlin had been "a difficult discussion but I believe and I hope that we made progress on some points".