Zelensky said Ukraine had always offered solutions for peace and wanted meaningful and honest negotiations on peace and security, without delay.
"I want everyone to hear me now, especially in Moscow. The time has come for a meeting, it is time to talk," he said in a video address released in the early hours of Saturday.
"The time has come to restore territorial integrity and justice for Ukraine. Otherwise, Russia's losses will be such that it will take you several generations to recover."
The two sides have been involved in talks for weeks with no sign of a breakthrough.
Zelensky said Russian forces were deliberately blocking the supply of humanitarian supplies to cities under attack.
"This is a deliberate tactic ... This is a war crime and they will answer for it, 100%," he said.
Zelensky said there was no information about how many people had died after a theatre in the city of Mariupol, where hundreds of people had been sheltering, was struck on Wednesday. More than 130 people had been rescued so far, he said.