A large Russian drone and missile attack struck Kyiv overnight, killing civilians, wounding more than 100 people and collapsing part of a nine-storey apartment building as Ukraine’s capital endured hours of explosions.
The toll rose as rescue crews searched damaged buildings throughout the day. The Associated Press reported at least 13 deaths and 132 injuries in an earlier accounting. Later reporting from Ukrainian officials put the number killed at 28 and the wounded at 159. Three children—ages three, six and 17—were among those reported dead in the later update. The changing figures reflected ongoing searches beneath rubble rather than separate attacks.
Ukraine’s air force said Russia launched 309 Shahed-type and decoy drones along with eight Iskander-K cruise missiles. It reported intercepting or jamming 288 drones and destroying three missiles, while five missiles and 21 drones reached targets. Even with most incoming weapons stopped, impacts and debris caused damage across the city.
Residential districts bear the impact
The heaviest destruction was reported in Kyiv’s Sviatoshynskyi and Solomianskyi districts. A large section of the nine-storey residential block collapsed, leaving rescue workers to clear concrete and search for people trapped inside. The damage destroyed an entrance to the building and exposed apartments, turning a night-time strike into a prolonged recovery operation.
At least 27 locations in Kyiv were hit, according to the head of the city’s military administration. More than 100 buildings were damaged, including homes, schools, kindergartens, universities and medical facilities. A shock wave blew out windows in a children’s hospital ward in the Shevchenkivskyi district.
Children represented a significant share of the casualties. In the AP’s earlier account, a six-year-old boy was among the dead and a five-month-old girl was among 14 injured children. AP said public records showed it was the largest number of children wounded in a single Kyiv attack since Russia began its full-scale invasion more than three years earlier.
Survivors described waking to thunderous blasts and finding doors and windows torn away. One resident of the damaged apartment building, who was there with her infant and five-year-old child, said the family was left in shock by the destruction. Around them, firefighters battled flames while emergency crews worked through unstable debris.
Scale overwhelms the appearance of successful interceptions
The air force’s interception figures illustrated a recurring feature of mass attacks: stopping a high percentage of weapons does not prevent severe casualties when hundreds are launched at a dense city. Cruise missiles and drones that broke through struck multiple districts.
Kyiv was the principal target, but Ukrainian officials also reported attacks in the Dnipro, Poltava, Sumy and Mykolaiv regions. In Kramatorsk, in the eastern Donetsk region, a strike hit a five-storey residential building, killing one person and injuring at least 11, according to the regional military administration.
Russia’s Defence Ministry said it had destroyed 32 Ukrainian drones overnight. Russian regional authorities reported a fire at an industrial site in Penza without casualties, and railway disruptions in Volgograd after drone wreckage fell on infrastructure. Those reports underscored the continuing exchange of long-range attacks, although the casualty toll and large-scale residential destruction in Kyiv dominated the day.
Attack lands amid US pressure for a ceasefire
The barrage came as US President Donald Trump shortened a deadline for Russian President Vladimir Putin to demonstrate progress toward peace. Trump had previously allowed 50 days, but moved the deadline to August 8 and threatened sanctions and tariffs if negotiations failed to advance. After the Kyiv attack, Trump called Russia’s actions disgusting, while acknowledging uncertainty about whether additional sanctions would influence Putin.
Ukraine’s President Volodymyr Zelensky said the strike showed Moscow’s answer to peace efforts involving Ukraine, the United States and Europe. He called for allies to meet defence commitments and increase pressure on Russia. At the United Nations, the acting US representative urged both Russia and Ukraine to negotiate a ceasefire and durable settlement.
The attack nevertheless suggested that diplomatic pressure had not altered Russia’s immediate military campaign. For hours, residents heard the hum of drones punctuated by missile explosions. The volume of incoming weapons forced air defences to confront many targets at once and left rescue services dealing with incidents spread across the capital.
Conflicting claims over Chasiv Yar
On the same day, Russia said its forces had captured Chasiv Yar, a heavily damaged hilltop town in eastern Ukraine that had been contested for roughly 16 months. Ukraine denied the claim, saying fighting continued and accusing Moscow of spreading false information.
Available battlefield reporting did not resolve the dispute. Ukraine’s General Staff recorded seven clashes in the area during the previous 24 hours, while its map showed Russia controlling most of the town. The Ukrainian open-source mapping project DeepState placed southern and western neighbourhoods in contested or uncontrolled zones.
Control of the high ground around Chasiv Yar could help Russian forces threaten larger Ukrainian-held cities farther west in Donetsk, including Kramatorsk and Sloviansk. The disagreement over its status illustrated the uncertainty of battlefield claims even as the consequences of the air war in Kyiv were plainly visible.
By the later casualty update, the July 31 attack ranked among the deadliest recent barrages against the capital. Its significance lay not only in the number of weapons fired, but in where the surviving missiles and drones landed: apartment buildings, schools, medical facilities and neighbourhoods where families were asleep. The ruined residential block became the clearest image of an attack that continued to claim lives long after the final explosion, as rescuers searched for those still missing beneath it.



