The overnight attack followed a warning from Russian President Vladimir Putin, conveyed via US leader Donald Trump, that the Kremlin would hit back after Ukrainian drones destroyed several strategic bomber aircraft in attacks deep inside Russia.
Kyiv mayor Vitali Klitschko said 16 people were taken to hospital.
The city's metro transport system was disrupted by a Russian strike that hit and damaged tracks between stations, Kyiv's military administration said.
Ukraine's state rail company Ukrzaliznytsia said it was also detouring some trains due to railway damage in the region.
In the Solomianskyi district, a Russian drone slammed into the side of apartment building, leaving a gaping hole and burn marks, a Reuters photographer at the scene said.
Falling concrete blocks from the building crushed cars parked below. Two police investigators were examining what appeared to be the drone's engine.
Earlier in the night, Reuters reporters heard the sound of Russian kamikaze drones buzzing in the sky, accompanied by the sounds of outgoing fire from Ukrainian anti-aircraft fire.
Reuters witnesses reported a series of booming explosions powerful enough to rattle windows far from the impact sites.
Some Kyiv residents sought shelter in metro stations, or in underground car parks.
Ukraine's air force said the country had been targeted with drones and missiles overnight.
Russian forces struck industrial facilities and infrastructure in the western city of Ternopil, leaving parts of it without power, mayor Serhii Nadal said.
The regional administration said the attack injured five people and recommended residents stay inside due to a high concentration of toxic substances in the air after a fire.
In one of the most audacious attacks of the war between Ukraine and Russia, Ukrainian spies last weekend destroyed some of Russia's strategic bomber aircraft on the ground using quadrocopter drones hidden in wooden sheds.
Ukraine used drones to strike Russian heavy bomber planes at air bases in Siberia and the far north at the weekend, and Russia also accused it of blowing up rail bridges in the south of the country, killing seven people.
Kremlin spokesman Dmitry Peskov, at his daily briefing with reporters, highlighted comments made by Putin a day earlier about the railway attacks.
"The president described the Kyiv regime as a terrorist regime, because it was the regime's leadership that consciously gave the order, the command, the order to blow up a passenger train. This is nothing other than terrorism at the state level. This is an important statement by the president," Peskov said.
Russia has not yet provided evidence that Ukrainian leaders ordered the rail attacks, and Kyiv has not acknowledged responsibility.
Ukrainian attacks inside Russia and Russian air strikes and advances on the battlefield have escalated the war that began in February 2022, damaging prospects for peace talks that the two sides resumed in Turkey in May.