Russian shelling has killed at least 17 people and wounded 20 others at a market in the eastern Ukrainian city of Kostiantynivka, the country's officials say.
Associated Press journalists at the scene saw covered bodies on the ground and emergency workers extinguishing fires at market stalls, with blackened mangled cars nearby.
Prime Minister Denys Smyhal said at least 17 people were killed, with 20 wounded.
The number of dead was expected to rise.
President Volodymyr Zelenskiy condemned the attack, saying a market, shops and a pharmacy had been struck in the industrial city close to the battlefield, and about 30km from the city of Bakhmut, where fighting has been heavy for months.
"Anyone in the world who is still dealing with anything Russian simply ignores this reality. Heinous evil. Brazen wickedness. Utter inhumanity," he posted on social media site X.
Ukrainian officials posted a video on the Telegram messaging app which showed a loud explosion ripping through shopping alleys, with people falling to the ground and some running for cover.
Local media described it as a missile attack.
"This Russian evil must be defeated as soon as possible," Zelenskiy said.
Interior Minister Ihor Klimenko said that in addition to the 16 killed, at least 28 people were wounded in the attack and said it was on the central city market.
On the Telegram messaging app he posted pictures showing rescue workers sifting through the rubble and carrying out bodies in black sacks.
Kostiantynivka is in the Donetsk region, parts of which are occupied by Russian forces.
The attack came as US Secretary of State Anthony Blinken visited the capital Kyiv, where he was expected to announce more than $US1 billion ($A1.6 billion) in new funding for Ukraine.
The first top US official to visit Kyiv since the counteroffensive began in early June, Blinken had talks with Foreign Minister Dmytro Kuleba and was due to meet Zelenskiy.
"We want to make sure that Ukraine has what it needs, not only to succeed in the counteroffensive, but has what it needs for the long term, to make sure that it has a strong deterrent," Blinken said standing alongside Kuleba.
Kremlin spokesman Dmitry Peskov said that US assistance to Ukraine "can't influence the course of the special military operation".
Meanwhile, Ukraine's parliament approved the appointment of former MP Rustem Umerov as defence minister on Wednesday.
Umerov, 41, replaces Oleksii Reznikov, who helped secure billions of dollars of foreign military aid as defence minister but was dogged by media allegations of corruption at the ministry and sacked by Zelenskiy on Sunday.
Reznikov did not face corruption allegations himself but says he is the victim of a smear campaign.
His removal is not expected to affect Ukraine's military strategy.
"Our main objective is victory," Umerov wrote on Facebook after parliament voted overwhelmingly to back him.
"I will do everything possible and impossible for Ukraine's victory - when we will liberate every centimetre of our country and each our person."
MPs had approved Reznikov's removal on Monday after he tendered his resignation following Zelenskiy's decision to dismiss him.
"Welcome aboard, Minister," the defence ministry wrote on social media platform X.
Reznikov said Umerov was "a great fit" for the position.
"The challenges are many but such are the times in which we live. Unity is the key to our victory," he said on X.
When proposing Umerov, a Crimean Tatar, Zelenskiy said new approaches and other forms of interaction with the military and society were needed as Russia's invasion entered its 19th month.
Before his appointment, Umerov, who speaks English and Turkish, headed Ukraine's main privatisation agency - the State Property Fund - for about a year.
He was credited for overturning the institution and restarting the efforts to sell loss-making state-owned companies to private investors despite the war.
with Reuters and DPA