More than 1000 people were inside on Monday when two Russian missiles slammed into the mall in the city of Kremenchuk, southeast of Kyiv, President Volodymyr Zelenskiy wrote on Telegram.
At least 16 people were killed and 59 injured, Ukraine's emergency services said. Rescuers trawled through mangled metal and debris for survivors.
"This is not an accidental hit, this is a calculated Russian strike exactly onto this shopping centre," Ukrainian President Volodymyr Zelenskiy said in an evening video address, adding women and children were inside. He said the death count could rise.
Russia has not commented on the strike, which was condemned by the United Nations and Ukraine's Western allies. But its deputy ambassador to the United Nations, Dmitry Polyanskiy, accused Ukraine of using the incident to gain sympathy ahead of a June 28-30 summit of the NATO military alliance.
As night fell in Kremenchuk, firefighters and soldiers brought lights and generators to continue the search. Family members lined up at a hotel across the street where rescue workers had set up a base.
The United Nations Security Council will meet Tuesday at Ukraine's request following the attack on the shopping centre. UN spokesman Stephane Dujarric said the attack was "deplorable".
Leaders of the Group of Seven major democracies, gathered for their annual summit in Germany, condemned what they called an "abominable" attack that constituted a war crime.
"Russian President Putin and those responsible will be held to account," they wrote in a joint statement tweeted by the German government spokesperson.
Elsewhere on the battlefield, Ukraine endured another difficult day following the loss of the now-ruined city of Sievierodonetsk after weeks of bombardment and street fighting.
Russian artillery was pounding Lysychansk, its twin across the Siverskyi Donets River. Lysychansk is the last big city still held by Ukraine in the eastern Luhansk province, a main target for the Kremlin after Russian troops failed to take the capital Kyiv early in the war.
A Russian missile strike killed eight and wounded 21 others in Lysychansk on Monday, the area's regional governor Serhiy Gaidai said.
Ukraine's military said Russia's forces were trying to cut off Lysychansk from the south. Reuters could not confirm Russian reports that Moscow's troops had already entered the city.
Russia invaded Ukraine on February 24 in what the Kremlin calls a "special military operation" to rid the country of far-right nationalists and ensure Russian security. The war has killed thousands, sent millions fleeing and laid waste to cities.
During their summit in Germany, G7 leaders, including US President Joe Biden, said they would keep sanctions on Russia for as long as necessary and intensify international pressure on President Vladimir Putin's government and its ally Belarus.
"Imagine if we allowed Putin to get away with the violent acquisition of huge chunks of another country, sovereign, independent territory," British Prime Minister Boris Johnson told the BBC.
The United States said it was finalising another weapons package for Ukraine that would include long-range air-defence systems, arms that Zelenskiy specifically requested when he addressed the leaders by video link on Monday.
In his address to the G7 leaders, Zelenskiy asked again for more arms, US and European officials said. He requested help to export grain from Ukraine and for more sanctions on Russia.
The G7 nations promised to squeeze Russia's finances further - including a deal to cap the price of Russian oil that a US official said was "close" - and promised up to $US29.5 billion ($A42.6 billion) more for Ukraine.
"We will continue to provide financial, humanitarian, military and diplomatic support and stand with Ukraine for as long as it takes," a G7 statement said.