Much of the fighting has been concentrated in the east and south recently but General Valeriy Zaluzhny told the British weekly the capital would be targeted again.
A "very important strategic task is to create reserves and prepare for the war which may take place in February, at best in March, and at worst at the end of January," he said in a December 3 interview released on Thursday.
JOIN US ON TELEGRAM
Follow our coverage of the war on the @Kyivpost_official.
"The Russians are preparing some 200,000 fresh troops. I have no doubt they will have another go at Kyiv," he said in the interview.
"We have made all the calculations -- how many tanks, artillery we need and so on and so on."
At the end of February, Moscow sent its forces into Ukraine with the aim of swiftly capturing Kyiv.
In a victory for the Ukrainian army, the invaders were held up several dozen kilometres from the capital before pulling back from the region at the end of March and early April.
The general said among his current problems was "to hold this (front)line", which runs south to east, "and not lose any more ground" after pushing back the Russians from the Kharkiv region in the northeast in September and Kherson in the south last month.
For Zaluzhny, the Russians have bombarded energy infrastructure since October following a series of humiliating battlefield reverses because "they need time to gather resources" for a broad offensive in the coming months.
"I am not an energy expert but it seems to me we are on the edge," he said, stating that the destruction of the power grid was "possible" by missile and drone strikes.
Zelensky Believes Trump Wants to End War Faster
The waves of attacks on the power network that have already taken place have caused massive power outages across the country, leaving millions of Ukrainians in the bitter cold and dark of winter.
"I know that I can beat this enemy," the general continued. "But I need resources.
"I need 300 tanks, 600-700 ifvs (infantry fighting vehicles) 500 Howitzers."
You can also highlight the text and press Ctrl + Enter