At least 17 people have been killed, including a child, after a Russian missile struck a market in a town in the eastern Ukrainian region of Donetsk, officials said, one of the worst attacks in months.
Ukrainian officials said 32 others were wounded in the attack on Kostiantynivka.
"Russian troops are terrorists who will not be forgiven and will not be left in peace," Ukrainian Prime Minister Denys Shmyhal wrote on Telegram. "There will be a just retribution for everything."
Russian missile attacks regularly hit civilian areas but tolls this high are unusual. A strike on an apartment block in the central city of Uman killed 23 people, including children, in April, and a similar strike on Dnipro killed 40 in January.
Kostiantynivka is close to the front lines around Bakhmut and frequently crowded with military personnel.
But footage of the attack shared by Ukrainian President Volodymyr Zelensky showed civilians walking along the market street before the missile struck on Wednesday afternoon.
One video showed a large explosion in the middle of the busy thoroughfare, smashing the glass of nearby buildings as pedestrians ran away.
The footage shared by Zelensky then showed a fierce fire and plumes of thick black smoke billowing from burnt-out cars and buildings, as firefighters responded at the scene.
Subsequent images from Kostiantynivka showed the effects of the explosion: blood smeared across the floor of a pharmacy, burning cars, destroyed buildings, and bodies being carried away by emergency services.
An act of 'terrorism'
Zelensky branded the attack as "utter inhumanity."
"When someone in the world still attempts to deal with anything Russian, it means turning a blind eye to this reality. The audacity of evil," Zelensky wrote on X, formerly Twitter. "The brazenness of wickedness. Utter inhumanity."
The strike was launched just hours after US Secretary of State Antony Blinken landed in Kyiv in his third visit to Ukraine since Russia launched its full-scale invasion.
Blinken is scheduled to meet with Zelensky during his trip, from whom he is expecting a firsthand report of Ukrainian efforts to regain land around Bakhmut, which lies to the east of Kostiantynivka.
The visit comes as Ukraine's counteroffensive enters its fourth month, with both political and military leaders in Kyiv talking up recent gains, especially along the southern front, following growing concerns the concerted push on the battlefield has been slower than had been hoped.
In a brief exchange with Ukrainian foreign minister Dmytro Kuleba, Blinken noted the "good progress" Ukraine has made in its counteroffensive.
Zelensky claimed that the timing of Russia's attack on the civilian area "was deliberate."
"It's the same as it was before: whenever there are any positive offensive steps by the Ukrainian Defense Forces, the Russians always hit civilians and civilian objects... where they can reach with any kind of missiles or artillery. We know this direction very well. We understand that they hit deliberately," Zelensky said, responding to the news of the attack during a joint news conference with the Prime Minister of Denmark in Kyiv.
The strike also came shortly after Rustem Umerov became Ukraine's new defense minister, after the Ukrainian parliament voted to approve his appointment.
In his first remarks in his new role, Umerov vowed to wrest back control of "every centimeter" of Ukrainian land from Russia and bring home all those in captivity.