Russian authorities say Ukraine has launched an "unprecedented attack" on and around St Petersburg, as the city hosts the final day of Russia's annual economic forum.
More than 140 drones were shot down over the surrounding Leningrad region, governor Aleksandr Drozdenko said, while the city's governor, Alexander Beglov, urged residents to remain indoors for the first time since the beginning of the war.
Ukraine's president said his forces hit Russia's arsenals and a naval base in what he called a just response to Russian attacks.
It comes just a day after Russia's president delivered a speech at the forum, in which he said there was no point in meeting Zelensky, who had called for direct talks on ending the war.
Ukrainian President Volodymyr Zelesnky posted on social media on Saturday to say it was "time to end this war", but accused Putin of wanting to "keep fighting".
He said his country's drones had covered a distance of 1,000km (620 miles) to the St Petersburg region, targeting "the enemy navy's arsenals and a base in Kronstadt".
An oil depot in the Krasnodar region of southern Russia - 500km (310 miles) away - had also been hit, he added.
This follows an open letter sent on Thursday by Zelensky calling for face-to-face negotiations with Vladimir Putin to end the war, which began with Russia's full-scale invasion in 2022.
