Russian assaults on the Ukrainian capital Kyiv have been met with fierce resistance, as the Ukrainian military says it has fought off several attacks.
The military said in a Facebook post early on Saturday that an army unit managed to repel Russian forces near its base on a major city street.
President Zelensky earlier warned Russia would try to “storm” Kyiv.
The city government confirmed there was fighting on the streets and urged people to stay at home.
According to a report by Interfax-Ukraine, it put out a statement asking people to stay in shelters and to stay away from windows if they were at home.
But Secretary of the National Security and Defence Council Oleksiy Danilov told Ukrainian news site Lb.ua that the army was “in control” of the situation.
“We are stopping the horde using all means available. The army servicemen and citizens are in control of Kyiv,” said Mr Danilov.

‘We must persevere’
Ukrainian President Volodymyr Zelensky had earlier warned that Russia would try to “storm” Kyiv on Friday night.
“This night the enemy will be using all available means to break our resistance. This night they will launch an assault,” said Mr Zelensky.
“This night we must persevere. The fate of Ukraine is being decided right now… Our main goal is to finish this bloodbath.”
While Mr Zelensky acknowledged Russian forces had inflicted casualties, he maintained “the enemy has sustained very serious casualties”, too. The BBC cannot verify this claim.
Earlier on Friday, a spokesperson for Mr Zelensky said the country was prepared to hold ceasefire and peace talks with Russia immediately and were discussing a place and time to hold talks.
German Foreign Minister Annalena Baerbock said the Russian president and his top diplomat were “responsible for the deaths of innocent people in Ukraine, and for trampling on the international system”.
“We, as Europeans, do not accept that,” she said, after a meeting of foreign ministers in Brussels.