A rocket strike in the east Ukrainian region of Luhansk has killed at least 19 soldiers, Ukrainian officials say, blaming it on separatist rebels.
They said rebels had fired a barrage of Grad rockets at troops in Zelenopillya, a village near the Russian border.
The pro-Russian rebels say they "destroyed a column" of troops there.
Ukrainian President Petro Poroshenko vowed retaliation, saying: "For every soldier's life, the militants will pay with tens and hundreds of their own."
"Not a single terrorist will avoid responsibility, each will get what they deserve," he said, in a statement posted on his website after an emergency meeting of security chiefs.
Ukraine's defence ministry put at 23 the number of troops killed in clashes in the past 24 hours. Nineteen of them died in the Grad attack, it said.
The ministry spokesman, Volodymyr Seleznyov, also said 93 troops had been wounded. Earlier media reports about the rocket strike, which spoke of up to 30 killed, were inaccurate, he said.
Russian-made Grad rockets are heavy artillery weapons fired in batches from lorries. Both the Russian and Ukrainian armed forces use them.
On Thursday night the rebels shelled Ukrainian troops at Donetsk airport.
The rebels have regrouped in Donetsk as the Ukrainian military has retaken territory in the country's east. The rebels have not yet broken through to the airport.
The figure of up to 30 dead in the Zelenopillya rocket attack came from Zoryan Shkyryak, an adviser to Ukrainian Interior Minister Arsen Avakov. He described the destruction as "really heavy".
A motorised brigade from Lviv, western Ukraine, was targeted in the rocket attack, the Ukrainian news website Unian reports.
Beatings and torture
Meanwhile, a report by the human rights group Amnesty International has accused separatists of abuses in the three-month conflict.
The group said it had found "graphic and compelling evidence of savage beatings and other torture" by pro-Russian groups in eastern Ukraine.
The Amnesty report, Abductions and Torture in Eastern Ukraine, said that protesters and journalists had been targeted, and hundreds of people had been abducted.
Pro-government forces had also committed a smaller number of abuses, Amnesty said.
One of the rebel leaders, Oleg Tsaryov, told the BBC that the militants would not surrender, despite increased pressure from Ukrainian government forces.