A Russian drone strike killed at least 14 people at a crowded railway station in Dnipro on Thursday, while separate daytime attacks killed five more people in two other Ukrainian cities.
A late-night missile strike on the capital, Kyiv, killed another person, officials said.
The wave of attacks rocked Ukrainian cities as a local cease-fire in the southern Kherson region raised cautious hopes for a possible resumption of diplomatic efforts.
"Russia is deliberately hunting civilians: on trains, at stations, in residential buildings," Ukrainian Prime Minister Sergiy Koretskyi said in a statement on Telegram.
"There is no justification for this terror, and there never can be."
Another Russian missile attack struck several districts of Kyiv shortly before 11:00 p.m. (9:00 p.m. GMT), killing one person, the city's military administration said. The attack set warehouses ablaze, while falling debris damaged a building on the eastern bank of the Dnipro River.
A few hours earlier, Ukrainian President Volodymyr Zelenskyy had described the attacks as "very cruel" and "deliberate when everyone expects de-escalation steps."
Zelenskyy warned that Ukraine had intelligence "about preparations by the Russians of new ballistic missile strikes. We need the means to take out all this Russian evil. We are expecting relevant decisions."
The six-day truce, brokered with U.S. help, applied only to the southern Kherson region, where a humanitarian mission was underway to deliver aid to the Russian-held town of Oleshky, which has been isolated in a war zone since the start of Moscow's 2022 invasion.
Both sides issued virtually identical statements saying demining operations had been completed and the mission could proceed, allowing aid to reach the town and giving residents the opportunity to leave if they wished.
Elsewhere, Russian drone and missile attacks on critical infrastructure, including the rail network, have disrupted civilian life and ravaged the economy. The strikes have been compounded by an acute shortage of air defense missiles.
Bodies scattered across platform
In Dnipro, state railway operator Ukrzaliznytsia said a jet-powered drone had struck a platform at the city's main railway station, where a commuter train was preparing to depart.
Mangled bodies lay scattered across the pavement, which was marked by shrapnel, as pools of bright red blood collected nearby. Police placed bodies in black bags amid the wail of an air-raid siren.
"And for what? What goal are they (Russians) trying to achieve?" said Svitlana Shcherbak, 67, as she sheltered underground at the station. "I don't understand it at all."
Another attack on Dnipro struck a student dormitory, setting it ablaze, regional governor Oleksandr Hanzha said. He added that a day of attacks had cut power to 350,000 households in the city.
Russia's escalating bombing campaign against Ukrainian cities has repeatedly killed civilians. Moscow has denied targeting civilians.
New strikes across Ukraine
Two teenage girls were killed on a central street in Chernihiv in northern Ukraine, while three people died in strikes on residential buildings in the central city of Kremenchuk.
In Chernihiv, 23 people, including four children, were wounded in a drone attack on a busy downtown street, in addition to the two teenagers killed.
"Ordinary, peaceful people were attacked who were just going to work, going about their daily business, making plans for the day," said Dmytro Bryzhynskyi, head of the city's military administration.
In Kremenchuk, strikes on a residential block and private buildings killed three people and wounded 32, the regional governor said. Russian drones also struck city buses in three separate attacks in Zaporizhzhia in southeastern Ukraine, wounding six people, officials said.
Thursday's strikes came amid renewed efforts to revive U.S.-backed peace talks to end Europe's deadliest conflict since World War II.
New three-way talks are expected to take place next month, with Ukrainian officials, including top presidential adviser Kyrylo Budanov, urging Kyiv's partners to increase pressure on Moscow.