Aftermath of a Russian military strikes in Kherson
A firefighter works at the site of a train station hit by a Russian military strike, amid Russia's attack on Ukraine, in Kherson, Ukraine May 3, 2023. Reuters

Russian shelling killed 21 civilians in and near the southern Ukrainian city of Kherson on Wednesday, including strikes on a hypermarket, a railway station and crossing, a petrol station and residential buildings, President Volodymyr Zelenskiy said.

Forty-eight people were known to have been injured, Zelenskiy said on the Telegram messaging app. "All civilians! With the day not yet over! In one region!" he wrote.

He described the targets as "the bloody trail that Russia leaves behind with its shells".

Officials had earlier said 12 of the victims were in the city of Kherson, the region's capital, where a hypermarket came under fire as people were doing their morning shopping and explosions tore through a railway station.

Four more were killed in villages outside the main city in attacks from areas of the Kherson region still occupied by Russia. They included three engineers trying to repair damage inflicted on the power grid in earlier Russian bombardments.

Pools of blood and piles of debris lay on the ground outside the Kherson hypermarket, whose entrance had been heavily damaged and cordoned off, Reuters correspondents on the scene said.

The interior ministry said the victims were all either customers or workers at the hypermarket.

"When the enemy can achieve nothing on the battlefield, it strikes at peaceful cities," Ukrainian military spokesperson Serhii Cherevatyi said.

Russia did not comment on the attacks in Kherson, one of four Ukrainian regions it said it annexed last September. Moscow has denied targeting civilians in its invasion of Ukraine that began in February 2022.

Many windows were smashed at the railway station, and at least two survivors were seen being carried out on stretchers. Three women who had been eating at the time of the attack said they took cover under a table.

Moscow has stepped up air strikes on Ukraine in the past few days as Kyiv prepares for a counteroffensive in which it is expected to try to retake occupied territory in Kherson region.

Ukrainian troops recaptured Kherson city last November after nearly eight months of occupation, but Russian troops retreated only as far as the opposite side of the Dnipro River, from where they now shell the city.

Regional governor Oleksandr Prokudin on Wednesday announced a curfew in Kherson city to last from Friday evening until Monday morning for "law enforcement" reasons. He gave no other details.