KYIV—Outside the Giraffe shopping mall on the western edge of Ukraine’s capital, a group of locals prepared to meet the Russian armored column thundering their way.
It was late February, and the Russians, from an elite airborne unit, were riding atop their vehicles, as if expecting a warm greeting. One wore a Cossack woolen hat instead of a helmet. Another hadn’t loaded his rifle.
The few dozen Ukrainians from the towns of Irpin and Bucha had other intentions, which they had written on the cement mixer and bulldozer that blocked the road: “Welcome to hell.”
After Russia launched an all-out invasion on Feb. 24, a 32-year-old Ukrainian city council member and solar-power entrepreneur named Volodymyr Korotya had led preparations for a fighting stand. The men were brandishing a grab bag of weapons, including pump-action shotguns and a handful of rocket-propelled grenades. Many were dressed in jeans, and few had body armor. Around half of their number, which included a psychotherapist, a firefighter and a bus driver, had never fought before.
“Look what I do and do the same,” Mr. Korotya, who had seen combat during his time in the Ukrainian army, told the new recruits.
As a vanguard of a dozen armored vehicles rumbled over the bridge between Bucha and Irpin and began to climb the hill toward them, the Ukrainians opened fire.
After a fierce three-hour battle, the Russian vehicles were destroyed or abandoned, and the soldiers were dead or in retreat. The Ukrainians set off across the bridge to finish off the rest of the column.
The Russians never crossed that bridge in their monthlong attempt to seize Kyiv.
It’s hard to know how people will react to a huge invasion force. Resistance requires a core of people in villages, towns and cities to find enough courage and motivation to fight rather than flee. Confidence in communities large and small grows with each person who stays and picks up a weapon.
That’s especially true in a country like Ukraine, whose national anthem starts: “The glory and freedom of Ukraine have not yet perished.” That line reflects the nation’s painful attempts over centuries to establish itself as an independent country in the maw of empires.
Russian President Vladimir Putin sent his army into Ukraine to snuff out its latest, 30-year attempt to establish full-fledged independence after the collapse of the Soviet Union. He had boasted that it would take only days for his powerful army to take Kyiv.
Over the next month, enough Ukrainians found the will and means to resist him. They formed armed groups with whatever weapons they could lay their hands on. They fed and equipped fighters and billeted them in their homes. They shimmied up trees in search of cellphone reception to report on enemy movements. The result looked like something little seen in modern warfare—a domestic insurgency fused onto a traditional army.
“We are like a hive of bees,” said Yaroslav Honchar, head of an attack-drone crew who make their own armed craft. “One bee is nothing, but a thousand can defeat a big force.”
To a degree not fully appreciated, it was these citizen soldiers, teaming up with active-duty personnel, who turned the tide in the most consequential battle in Europe since World War II and preserved Ukraine’s status as a sovereign nation. The defense of Kyiv allowed the president to stay and rally national support. He could also then procure the weapons from the U.S. and Europe that are now helping the army to dislodge Russian forces in the east and south.
Without Kyiv’s defenders securing crucial spots around the city in the war’s early days, none of that would have been possible.
Saving the Airport
The Ukrainian special-forces team needed to get to Kyiv fast. But the roads from their base in western Ukraine were choked with cars heading the other way.
Civilians were panicking. Russian armored columns were streaming toward the capital from Belarus, less than 100 miles to the north. Information was scarce and often contradictory.
Marik, the team’s 32-year-old leader, focused. He needed to locate the sharpest Russian thrust toward Kyiv and figure out how his team could blunt it, he explained later, using only a pseudonym as required by Ukraine’s military.
A cyberattack had cut communications between commanders and units in the field, leaving unsecured cellphones as the only link. But Marik saw no reason to panic. He stuck to his mantra: You can’t win the war on your own; everyone has his own small front.
As the team threaded its way toward Kyiv, Marik saw videos posted online by civilians of around 30 black Russian helicopters swooping low toward the capital from the north. Their target was Antonov Airport in Hostomel, a cargo and testing airstrip about 20 miles from central Kyiv.
Marik’s commanders ordered him there. An understrength National Guard unit and another special-forces team at the airport had managed to shoot down three helicopters and hold off 200 elite paratroopers for nearly three hours before withdrawing when they ran out of ammunition. They had lost the airport but won time.
The Russians set up machine-gun nests and secured airport buildings in preparation for transport planes to land a larger force to thrust into the heart of Kyiv.
Marik had to get there and stop them. Arriving near the airport as darkness fell, he learned that others were also gunning for the Russians.
This would be no repeat of 2014, when Russian irregular fighters seized the city of Slovyansk in Ukraine’s east, igniting a war that was still simmering when Russia’s new invasion force rolled in.
Back then, when Marik was sent in to reclaim the city, his unit was equipped mostly with Soviet remnants, including metal helmets and rubber tourniquets that could snap when pulled tight. Now Marik’s men had Kevlar helmets, fitted body armor and secure American radios with headsets. Western training had helped accustom him to working autonomously in small groups. Special forces’ new motto, taken from a 10th-century Kyiv leader called Svyatoslav the Brave, announced their readiness for violence: “I come at you!”
An array of Ukrainian units, aided by civilian volunteers, threw themselves into a haphazard counterattack.
Forty-eight Ukrainian paratroopers landed in three helicopters to the southwest, while another assault team approached from the north. They used brief cellphone messages to direct artillery forces to pound Russian positions. Under assault from several angles, the Russians couldn’t safely land planes.
The counterattack had bought time. But Russian armored columns were advancing quickly by land.
Around dawn, commanders ordered Marik to pull back to a new defensive line along the Irpin River to the northwest of Kyiv. Sappers told him they were preparing to detonate the nearest bridge in 10 minutes, and couldn’t wait.
“Blow it,” Marik said. “We’ll find another way out.”
The explosion rang out as the vehicles sped off. They looped south, but for a second day were delayed by civilians: not ones fleeing, but those who had stayed, picked up assault rifles at their local recruiting offices and set up roadblocks. They wanted to check his documents and, when they found out who he was, pestered him to help them man the barricades.
It was early afternoon by the time he made it to the village of Horenka on the other side of the river, the last significant natural barrier on the western approach to Kyiv. His team hid its vehicles and crept 300 yards onto the bridge.
There, they found corpses in uniforms and burnt-out vehicles—the aftermath of a battle. Documents on bodies from both sides revealed that Ukrainians from the 72nd Mechanized Brigade had held off Russians from police special forces, apparently deployed for a public-order operation in anticipation of a quick military victory.
Civilians were picking their way across the bridge on foot, on bikes and in cars. There was a hole on one side of the road, but it was still passable. Marik called for explosives to finish the job, to deny the Russians the bridge.
The explosives arrived packed in a white van. With the Russians on the far bank, Marik couldn’t risk trying to lay charges under the bridge. Instead, they would have to drive the van onto the side that was still intact and detonate the load.
“Has it all been checked?” he asked the soldier who brought the explosives and detonators.
“Yes, all of it,” came the reply.
Russian helicopters were circling Antonov Airport. The enemy appeared to be in control and bringing forward reserves. There was no time to waste.
Two of Marik’s men drove the van onto the bridge, parking it on the right side and sprinted back, unspooling the detonator wire. With everyone clear, Marik plunged the detonator.
With every minute that passed, he worried that the Russians, lurking somewhere on the far bank, would launch an attack.
Marik grabbed a detonator set to five minutes and sprinted onto the bridge. He primed it then ran back to cover.
Three minutes had passed when the machine-gunner covering the bridge radioed Marik.
“Civilians moving toward the bridge,” said the soldier, known as Vova.
“Vova, just shoot,” Marik said. “Scare them.”
Vova fired two bursts of bullets. The civilians hit the deck. Seconds later, the van exploded.
After the dust settled, Marik sent up a quadcopter, a small drone with four rotors, to check the damage. There was a big hole in the bridge surrounded by fissures. Tanks wouldn’t be able to pass.
Commanders then ordered him north to prevent the Russians from crossing the river at another spot.
Marik needn’t have worried. A 44-year-old property developer named Oleksandr Dmitriyev was already on the case.
A thickset man with a mop of brown hair and blue eyes, Mr. Dmitriyev for years had organized off-road races on the boggy land along the Irpin River.
He knew the Irpin had thwarted German invaders in 1941. Soviet bunkers still dot the eastern bank, part of a defensive stand that forced the Nazis to loop around Kyiv to take it.
When a reservoir was created on the Dnipro River to the capital’s north in the early 1960s, a dam was constructed at the mouth of the Irpin to prevent flooding. Pumps force water from the Irpin into the reservoir, whose level was several meters higher.
If the dam stopped holding the water back, it would flood the banks and create a natural barrier to the Russian advance. Mr. Dmitriyev’s audacious plan: Blow up the dam.
Mr. Dmitriyev headed a volunteer group of auto enthusiasts that had helped re-equip the army after Russia’s first invasion in 2014. He drove to the headquarters of Ukraine’s Ground Forces to pitch his idea.
Army Lt. Gen. Oleksandr Syrskiy listened intently as Mr. Dmitriyev explained with the help of a map. The commander gave the go-ahead.
Soldiers loaded hundreds of pounds of explosives into two of Mr. Dmitriyev’s sport-utility vehicles.
Mr. Dmitriyev called Oleksandr Aleksandrovych, a 41-year-old photographer who was another member of the volunteer group. The photographer made his way to the dam, where his first task was to explain the plan to the two men on duty at the pumping station.
“Are you crazy?” one of them exclaimed. Unleashing the water from the reservoir would flood people’s homes on the river banks.
“I know,” Mr. Aleksandrovych countered. “But this could save their lives.”
A local car mechanic who was part of Mr. Dmitriyev’s group tried an angle grinder and a blowtorch on the sluice gates. No luck.
There was only one option left, Mr. Aleksandrovych told Mr. Dmitriyev by telephone: “We need to blow it.”
As dusk fell, sappers detonated the charges with a bang heard in nearby villages.
Mr. Aleksandrovych went to inspect the result of their work. Water was gushing through a 5-foot hole.
Early the next morning, on Feb. 26, a group of civilian drone enthusiasts stood on the edge of Moshchun village to the south, staring at images streamed from an octocopter hovering over the opposite bank.
“Jackpot,” said Mr. Honchar, 42. He was a former IT entrepreneur who used technology to make foreign pharmaceutical businesses more efficient. At that moment, dozens of Russian armored vehicles were loitering in fields on the opposite bank, apparently unsure where to go now that the bridges were blown.
It was the moment the Ukrainians had been training for since 2014, when Mr. Honchar and an investment banker friend launched Aerorozvidka, or Aerial Reconnaissance, to give the battered Ukrainian Army an eye in the sky to combat the Russian forces in the east.
Mr. Honchar and fellow drone missionaries would travel the front lines sharing images of enemy positions. They weren’t officially part of the army at first, but they had badges made to look the part, and soldiers and commanders were hungry for their pictures.
They initially used commercial drones and ordered models made by cinematographers. Then they constructed their own R18 octocopter from off-the-shelf and custom-made parts, improving it bit by bit with new components, including a thermal-imaging camera. That allows it to operate under cover of darkness.
The real MacGyver moment was when they figured out how to drop Soviet-era antitank grenades from the drones, using an attachment made from a 3-D printer.
As they stood in the village, Mr. Honchar looked at the drone pilot, a baby-faced 40-year-old known as Frodo, and they grinned. “Now we’re going to blow someone up,” said Mr. Honchar.
Through military contacts, Mr. Honchar had secured five boxes each containing six RKG-3 grenades. They loaded three onto the craft and sent it streaking over the river. Frodo positioned it over a tank, then pressed the button to release the grenade.
They heard an explosion and saw smoke billowing from the vehicle. It was the first time they had taken out a tank. The crew cheered. They reloaded and went out again. On the opposite bank, the tank crews had dismounted and had spotted the noisy craft in the dawn light. On the screen, Frodo saw a crowd of Russian soldiers firing their automatic rifles at the octocopter. Suddenly, they started to lose the connection. The drone went down, but it was a trade they would make any day.
“It wasn’t about how many we killed,” he said, “but letting them know that it wouldn’t be a walk in the park.”
On the other side of the river the morning of Feb. 27, outside the Giraffe shopping mall in the city of Irpin, the local militia was bracing for battle. Its leader, Mr. Korotya, had dusted off his old nom-de-guerre, Insurgent, which he took on during his youth as a fan of the soccer team Dynamo Kyiv, when he brawled with fans from rival teams.
Now a city councilor in neighboring Bucha, Mr. Korotya had spent the prior three days scrounging for men and munitions.
On the day of the invasion, he met with fellow veterans, then headed to the local military office to ask for rifles. Officers there refused and told them to go to their former army units. Late that evening he took a dozen veterans to the National Guard base in Irpin, which appeared deserted.
The armory was locked, but there were two armored personnel carriers in the garage. They wouldn’t start, so the men brought spare parts from an auto repair shop and set to work fixing them as mortar fire exploded close by.
They got the vehicles running and were preparing to leave when a handful of National Guard troops showed up, stunned to find armed men on their base with the dud vehicles running.
Insurgent gave them one of the APCs but took the other and hid it behind the Giraffe mall.
As morning broke, he heard of more abandoned vehicles up the road toward Antonov Airport. Insurgent’s men set to work getting them moving when an elderly man approached and quizzed them about who they were.
“Gramps, go away,” Insurgent said.
“No, listen,” the man persisted. “We’ve got paratroopers in our basement.”
Insurgent followed him to a house a few hundred yards closer to the airport, where they found eight Ukrainian paratroopers with rifles, a machine gun and rocket-propelled grenade launchers.
Their war had started near Chernobyl on the Belarus border, but they had quickly withdrawn as Russian armored vehicles threatened to overrun them. Part of their unit had been sent to assault Antonov Airport. The remainder set off toward Bucha but was ambushed by mortar fire around 5 a.m.
Insurgent brought the reinforcements and the vehicles that could drive or be towed back to Giraffe.
Other fresh troops were trickling in. Among them was Oleksandr Kotenko, a 42-year-old psychotherapist with a dark goatee and long hair pulled back into a ponytail. He took the name Tango for his love of dancing.
They brought a cement mixer and a bulldozer to block the road. They set up the machine gun and hid their four armored vehicles behind buildings around the mall. Around half of the 70 men were veterans, the rest were raw recruits like Tango who received a few quick tips about fighting, mainly about the importance of avoiding friendly fire.
It was just after 7 a.m. on Feb. 27 when Insurgent got word from an acquaintance at the northern end of Bucha that a huge Russian column was heading toward Station Street.
The roar of dozens of diesel engines grew louder. Then a vanguard of around a dozen vehicles rumbled across the bridge.
As the first vehicle started crawling up the hill, one of the Ukrainian paratroopers fired a rocket-propelled grenade, destroying it in one blow. He quickly picked up another RPG, already loaded, and fired again, hitting a second vehicle.
The rest of the ambush team opened fire with everything they had. The Ukrainian armored vehicles darted forward and let loose with their machine guns, then ducked back behind cover. One of the novices fired a machine gun from behind the roadblock, fed by Tango. When he got shot, Tango dragged him away and patched him up.
The Russians were in disarray. Their vehicles that could still move careened off the road and sought shelter behind buildings, including the shopping mall.
Soon after the shooting began, the mayor of Irpin, city councilors and utilities workers sped up and joined the fight with AK-47 rifles in hand.
With no radios other than the ones in the vehicles, Insurgent yelled commands or passed them on via a runner. Artillery began firing. Insurgent marked coordinates on Google maps and sent them to councilors he knew, who passed them to the military. At one point, they heard violent explosions from the other side of the bridge.
Some Russian soldiers tried to flank the Ukrainians through a deserted brick factory, but Insurgent’s men pushed them back. More than a dozen Russians took shelter in the shopping mall. They appeared unprepared and terrified. One came running out of the building on fire and shooting, until he was cut down. Another who had lost the bottom parts of his legs crawled out and opened fire. Lacking modern tourniquets, the Russians had bound their wounds with tape.
After more than two hours, the fight was over. Insurgent picked through the detritus of battle. Documents identified the Russians as members of the elite 76th Guards Air Assault Division.
He gathered a team of around 30, including newly arrived reinforcements from special forces. “Let’s go and finish them off,” he said.
Ukrainian forces on the eastern flank of Kyiv didn’t have a river for protection. But they had time.
Russian columns were trundling along a highway from the east. It would be almost two weeks before the first one approached.
A battalion of the 72nd Mechanized Brigade, which defended the capital’s flanks, had set up an ambush there in the first days of the war. Reinforcements arrived in the shape of Tetyana Chornovol, a 42-year-old former investigative journalist.
As a reporter, she scaled the wall of a corrupt, pro-Russian president’s mansion to photograph its opulence. She was beaten by thugs during street protests that ousted that leader. After becoming a lawmaker, she promoted domestic weapons production.
As the Russians gathered forces around Ukraine’s borders last year, she had grown certain they would invade, and she had recently completed a training course on a Ukrainian antitank weapon called a Stugna.
She had been drinking wine with a companion until the wee hours on Feb. 24 and had barely slept when she was roused by a phone call.
“It’s begun,” a friend told her.
Moments later, a missile exploded nearby.
She jumped in her ruby-red hybrid hatchback and set off for the Stugna factory to pick up some missiles.
After a few days searching for action, Ms. Chornovol called an officer in the 72nd Brigade who directed her to Brovary, a city on the eastern edge of Kyiv. A Russian armored column from the 6th Guards Tank Regiment was heading along a highway from the east toward the city.
Preparing its defense was softly spoken 29-year-old Lt. Col. Roman Darmohrai, a battalion commander whose military career had been forged in war. He graduated from the National Army Academy in 2015 and went straight into battle in eastern Ukraine with the 72nd, whose badge bears a skull and the phrase “Ukraine or death.”
After arriving in Brovary, he began laying a trap. The Russian tanks would vastly outnumber his vehicles, so his plans would rely on antitank weapons, surprise and local assistance.
Locals armed with backhoes and shovels helped them dig in.
Lt. Col. Darmohrai positioned Ms. Chornovol in a field near the village of Skybyn, at the front of the main ambush team. They couldn’t light a fire for fear of giving away their positions, so took shelter from the freezing wind in a small concrete irrigation station. She set up her Stugna, an export version that had a digital control screen with text in Arabic, and waited.
They knew the column was coming. Villagers were sending updates by phone and an app that computer whizzes had helped create for the Security Service of Ukraine. On March 9, a column of around two dozen vehicles rolled through the village of Zalissya in the direction of Brovary.
Part of the ambush team was ready at the side of the road, guided by a reconnaissance team using a drone. As the vehicles emerged from behind the tree line, a soldier who until recently had worked as a barista took aim with his NLAW, a shoulder-fired antitank missile provided by the U.K. government.
The missile slammed into the side of a tank. A couple of vehicles veered off into surrounding fields, while others returned fire on the Ukrainian position.
Stunned, most of the column halted. When it regrouped, it was moving in a single line rather than spreading out into a battle formation. As the vehicles approached the next village of Skybyn, Ms. Chornovol opened fire.
Her first shot missed. Her second was a direct hit, her first in battle.
As Ukrainian Korsar missiles landed and artillery guns boomed, the Russian tanks careened onto the muddy roadside. Trying to spin around, they clumped together, providing even juicier targets for Ukrainian gunners.
By the time the column retreated, it had lost 17 tanks, three other armored vehicles and dozens of men.
The vehicle of Russian Army Col. Andrei Zakharov, commander of the 6th Guards Tank Regiment, was among those hit. His men sped him to Bohdanivka, where they pulled up outside a house and ordered the gate opened. The owner, Serhiy Bobko, was a member of the local militia who had fled, but his wife opened up.
“Get us an operating table or something,” ordered one Russian soldier.
Soldiers pulled Col. Zakharov from the vehicle. He was covered in blood that had soaked into the sheet covering him. They were taking him to Mr. Bobko’s barn when he died.
As the Russians carried Col. Zakharov’s body away, one of them turned to Ms. Bobko.
“We no longer have a commander,” the forlorn soldier said. “We don’t know what to do: go forward or back.”
Yuriy Ulshyn, better known as Greek, was in Mariupol when the war started, but changed plans when he saw Russian invasion forces streaming toward the capital.
“Guys, let’s go to Kyiv,” he told the dozen teammates on his informal commando team. “If they take Kyiv, then it’s pointless defending elsewhere.”
The 47-year-old geologist, who took his alias from his Greek mother, had been at war for eight years and gained a reputation as a skilled army scout and sniper. He wanted to take the fight to the Russians but despised the paralyzing bureaucracy of the military and preferred to serve as a volunteer, picking where he and his men could work most effectively.
In the early days of March, Greek spotted a weak point that he and his couple of dozen men could help plug. The bridge over the Zhytomyr Highway near Makariv was a prime target for Russian forces seeking to cut off weapons deliveries from the West and advance toward the highway leading south to Odessa. There was a gap there between the 72nd Brigade and its neighboring unit.
He went to see the commander of the 72nd. “Sanya, I’ll go to the other side of the highway,” he said, calling Col. Oleksandr Vdovychenko by his familiar name. “There’s a hole near Makariv.”
His team was small, but then he received an offer of reinforcements from Vasyl Virastyuk, winner of the World’s Strongest Man contest in 2004, who was elected to Parliament in 2021. Mr. Virastyuk recommended a powerlifter called Andriy Kotovenko, better known as Cat, a short, stocky man who used to work at Epicenter, Ukraine’s equivalent of Home Depot.
Cat had been planning to head to Columbus, Ohio, to take part in Arnold Schwarzenegger’s renowned strength competition. Instead, on the first day of war, he went looking for the fastest way onto the front lines.
He called Mr. Virastyuk, who directed him to Greek’s freewheeling band of commandos.
Days later, Cat arrived with his team of six, including a former colleague from Epicenter and an ex-foodstore manager who had fought with him in the east.
They were a neat match: Greek a cerebral player-coach, Cat spoiling for a fight.
“I wake up thinking about killing Russians, and I go to sleep thinking about killing Russians,” Cat would say.
Eight years earlier the military recruiting office had refused to take him because he had no military experience. Instead he had joined Right Sector, a nationalist militia, which was the fastest way to get to the front line.
Right Sector became a boogeyman for the Russians, like the so-called Banderites who followed a nationalist leader and fought the Soviets into the 1950s.
Cat learned to operate a mortar and fought in several hot spots before he was badly injured after a soldier close by stepped on a land mine. He had fought back to health after 22 operations and started a new career as a competitive powerlifter.
Cat got hold of a 120 mm mortar and ammunition that an army unit had seized from the Russians. With the help of volunteers he acquired a Ford Ranger pickup to transport the mortar, and a Land Rover for the rounds.
Operating out of a house offered by a local in a village just to the west of the Makariv bridge, they worked in the gray zone, finding targets for the army’s artillery and for Cat’s mortar. They pushed the Russians back from the bridge to the woods and a hamlet known as the Makariv Dachas.
The Russians moved into houses there and dug into the woods, burying their tanks deep.
“We’ve dug in so well that the Banderites won’t see us,” one of the soldiers told a local villager.
Frodo, the drone pilot, was in a village nearby, just south of the Zhytomyr Highway, bristling with frustration because wet and foggy weather meant he couldn’t fly his drones.
A commander he knew from his service in the east called with an offer: Would he like to join a team hunting Russians near Chernobyl?
From the first day of war, Russian armored columns had been rumbling toward Kyiv from Belarus down two roads through the area around the defunct nuclear plant.
With the Russian army stuck on the edge of Kyiv, huge tailbacks formed, one of which stretched 40 miles back from Antonov Airport.
Firing on Russian vehicles, the 72nd Brigade’s artillery chief said, was like playing Tetris, the Soviet-designed computer game where a player lines up blocks to make them disappear.
“We eliminated them,” he said, “then new ones appeared.”
The commander who called Frodo, the Russia-born son of a Soviet airman, wanted him on a team of special-forces soldiers, hunters and poachers who would attempt to pinch the flow of vehicles at the source, starving the Russian units ranged around Kyiv of reinforcements, fuel and ammunition.
Frodo and the team of around 20 loaded pickups with equipment including remote-controlled mines and rifles. They also took five Starlink terminals, provided by SpaceX after a Ukrainian minister tweeted a request to Mr. Musk. Russia was targeting cell towers and using jamming to cut mobile communications, but Starlink would keep them connected.
They headed toward the village of Bazar in the wooded and sparsely populated area to the west of Chernobyl, where they linked up with Artem Sandratskiy, a 43-year-old hunting-lodge manager who knew the area well.
When Russia invaded, he helped around 1,500 people to flee Russian-held territory via Bazar, which remained under Ukrainian control. He arranged accommodation at the local school and food and clothes from volunteers. He also coaxed information from them, asking them to point to the spots on Google Maps where command posts and vehicles were located.
“I helped everyone,” he said, “and almost everyone helped me.”
He would double check the information with informers on occupied territory. Contacts clambered up trees in search of phone signal to send him messages. Oleksandr Rakov, a 47-year-old baker in the village of Krasyatichi, would share information he had collected on his rounds delivering bread.
Frodo and his crew arrived around March 10. By then, he and other members of Aerorozvidka had signed up with the Security Service of Ukraine to make their service official.
Their first target was a bridge near Poliske, a town near the Belarusian border that was abandoned after the Chernobyl nuclear accident in 1986.
They moved carefully. Frodo sent his drone up to check ahead for enemy troops every half-mile or so. They carried boxes of explosives on quad bikes fitted with mufflers and used them to blow the bridge.
Ideas for missions came thick and fast. They would sit around a table at Mr. Sandratskiy’s house and draw up plans on a map. They sought to target high-value Russian vehicles and equipment, sometimes staying in houses abandoned after the Chernobyl disaster, living right under the Russians’ noses. It wasn’t long before they were targets in a cat-and-mouse game with Russian helicopters, drones and special forces hunting them.
Locals informed them of a juicy target: dozens of ammunition and fuel trucks at a farm near the village of Zirka.
If they could get howitzers close enough and coordinate fire from a drone, it would be a turkey shoot. To succeed, they would have to take the howitzers, which weigh more than six tons each, into a gray zone controlled by neither side without being seen and keep a connection between the drone and the artillery commander giving the orders.
The commander persuaded an army general to provide three 152 mm howitzers with a range of 11 miles. Frodo arranged for a Ukrainian fixed-wing drone called a Leleka, or Stork, to provide live video. Frodo would be in charge of making sure they had a link.
Special-forces soldiers used chain saws to carve a path through the woods for trucks to drag the guns.
In the early hours of March 16, the trucks pulled the guns forward. Frodo went with them. In position a few miles from Zirka, he couldn’t get the Starlink powered from his car, as he’d planned, and had to call for a generator, which was rushed to his position.
As the Leleka was approaching the target around 10 a.m., the connection suddenly appeared.
The artillery commander standing next to the drone pilots called the gunners on Signal on his cellphone and gave the order to fire, directing their aim using the picture from the drone.
A video from the craft posted later on Facebook by Gen. Valeriy Zaluzhniy, the commander-in-chief of Ukraine’s armed forces, shows the destruction. Truck after truck is blown up as the howitzers score 47 hits from 52 shots. Gen. Zaluzhniy’s video is set to the song “Highway to Hell” by AC/DC.
By the start of March, the blown bridges had halted the Russians on the Irpin River. The flooding had prevented them from crossing in the north.
Over the following days, Mr. Dmitriyev observed drone footage that showed the river spreading from a channel of some 10 yards, submerging fields and bushes and leaving trees and pylons sticking out.
But there was a stretch of a few miles where the Russians could attempt a crossing. The peat bog was absorbing water like a sponge. Another sluice gate near the village of Chervone was blocking the flow. The Ukrainians tried and failed to destroy it with shelling.
Spotting their opening, the Russians’ began laying pontoon bridges. Dozens of vehicles came across through channels of water, thick woods and Ukrainian machine-gun positions.
The Ukrainian defenders, including a battalion of the 72nd Brigade and Marik’s special-forces team, withdrew to defensive positions on the edge of the village and the forest, where villagers had used a backhoe to help them dig trenches. The Russians took control of an area filled with cottages that is on the river’s edge in front of the village, where the drone team had fired from on the first day.
Concerned by the Russians’ progress, Gen. Zaluzhniy, came to the 72nd Brigade’s command post at the tennis academy in a nearby Kyiv suburb.
“You must stop them here,” Gen. Zaluzhniy told Col. Vdovychenko. “Kyiv is right behind you.”
By then, the Russians had dug trenches in a forest on the village’s northern flank and sought to thrust into central residential areas. Battles raged in the streets and forests around the village. Ukrainian forces later found the bodies of 27 Russians that their comrades had not recovered.
Forced back into the ruins of the village ravaged by artillery strikes, the Ukrainians held firm.
“There was nowhere for us to retreat to,” said Col. Vdovychenko. “If the enemy could have created a bridgehead and regrouped its forces, it would certainly have entered Kyiv.”
But help was at hand. On March 8, sappers had returned to the dam at the mouth of the Irpin River and blown it wide open.
The fresh flow of water overwhelmed the sluice gate at Chervone and rendered the pontoon bridges largely unusable. Marik saw from surveillance drones that Russian vehicles were stranded on the bridges or washed into the river. They couldn’t get them onto the bridges on boggy ground. With no reinforcements able to cross, never mind tanks, the Russian assault petered out.
The Irpin River, said Marik, “changed the direction of the whole war.”
‘They were like rabble’
For the Russian troops under Col. Zakharov, who had died in the yard of a village house, things quickly went awry.
Following the battle, they rammed their vehicles through villagers’ gates and parked them in their yards.
A group returned to Mr. Bobko’s house with some Champagne looted from a foodstore and offered it to his wife as an apology for troubling her with their bloodied and dying commander a day earlier.
“We don’t need it, we have some,” she told them.
“Oh, you have some?” one soldier replied.
The next day, the soldiers returned, asking for alcohol. She gave them a bottle of Champagne and a bottle of cognac to get rid of them.
An hour later, there was a noise outside. One of the soldiers had scaled the brick wall, apparently in search of fresh supplies, and fallen asleep on top.
The occupiers had a brutal streak. They held captives, including the local Orthodox priest, in various cellars across the city. One Russian soldier killed a man and raped his wife, according to Ukrainian prosecutors.
Many of the troops were young men. They would shoot from their tanks a few times in the direction of Ukrainian positions in the morning and a few in the evening, but didn’t try to advance. Instead, they spent their time scrounging cigarettes from locals, arguing over looted goods from stores and stealing items such as sneakers, jeans and a garden trimmer.
“They didn’t look like soldiers,” said Nataliya Landyk, a 67-year-old retiree. “They were like rabble that had just gotten out of jail.”
On the roadside near her house, the Russians dug in a few tanks and covered them with branches. They set up a dining area with beer crates for seats, polishing off bottles of beer, wine and brandy.
Vadym Horbach, the 44-year-old owner of a car-repair yard, asked one officer of around his age what he was doing there.
“I myself don’t know what I’m doing here,” the officer responded. But, he said, he was a military man and had no choice but to follow orders.
The Russians made one more halfhearted effort to advance to Brovary on March 19. As the tanks began firing at the railway bridge where Ms. Chornovol was positioned, she got off a shot that hit the first tank. The rest retreated.
Afterward, the soldiers from the 72nd Brigade and Ms. Chornovol piled into Khutorets, a cafe near the bridge where the cooks would serve them coffee, tea and potato pancakes.
The women had baked a cheese pie, but were refusing to hand it over to Ms. Chonovol’s teammates.
“It’s for the guy who took out the tank,” one of them said.
“It wasn’t a guy,” Ms. Chornovol exclaimed. “It was a gal!”
The Russian attacks in the east and west were stalled. The main remaining hope was somehow getting around Kyiv to the south and cutting off the Odessa Highway.
Around the bridge near Makariv, Cat and Greek were going on the offensive. They were outnumbered, which meant they would have to work harder.
The first target was a radio tower deep in the woods. Greek took a team there on foot, leaving a video camera at the top of the tower and setting up observation posts. He tried to leave as much evidence of his presence as possible to trick the Russians into believing that the Ukrainian force was larger than in reality.
There were about 30 of them at that stage, while the Russians numbered hundreds.
In mid-March, Greek decided to go for the dachas where the Russians had dug in. Some were living in basements. They had taken a calf from a nearby field and slaughtered it for meat. Packages of looted food lay everywhere, as well as a few green Russian Army ration packs.
Most of the reconnaissance for Greek’s Group was carried out by a drone pilot who would fly for hours on end sitting on a plastic garden chair with a rug over his legs. He would pause only to charge his vehicle.
Cat’s team of six would speed into position just south of the woods and have their mortar, with an accurate range of around 2 miles, ready to fire in around 15 minutes.
Cat was firing his mortar like a sniper, taking out Russian vehicles and infantry just a few dozen yards away from Greek’s advancing men.
They were moving around and firing in quick bursts, seeking to confuse and startle the enemy in a cold foreign wood.
After around six hours, the Ukrainians pulled back.
Near the end of March, the Russians suddenly launched an assault on the bridge with armored vehicles. The regular Ukrainian troops were wavering.
“Damn, Greek, send a group,” the local commander pleaded with him by phone.
They rushed there and used a machine gun to down a Russian drone, halted four tanks with missiles and called in artillery fire.
They were working round the clock.
“We wanted them to feel like they were in hell and wouldn’t get through,” said Greek. “We didn’t let them rest for a moment. We exhausted them.”
On March 29, they assaulted Russian positions with the help of paratroopers, but lost a tank and suffered casualties, and withdrew.
At night they heard a rumbling sound. The following morning, they were preparing for another assault the drone pilot came with news: “Greek, they are gone.”
Across the whole front around Kyiv, the Russians were pulling back. From Bohdanivka on the eastern flank, from Antonov Airport in the west, and from the far side of the dam in the north.
Cat arrived back from Kyiv where he had gotten his car fixed.
Greek called him and broke the news.
“The f—ers left!” Cat told his group, his voice laced with joy and bitterness. He had wanted to go finish them off.
Marik had been back and forth across the dam and the wrecked bridge in neighboring Demydiv. He would cross at night in the freezing cold with a small team and, guided by locals, ambush Russian positions.
One evening, he had gone to rescue a family that had fled their home and had got lost in the dark on the water-sodden bank. By the time he reached them across the damaged bridge, it was past midnight and one of the children, a young girl, had lost consciousness. He carried her across the bridge and put her in his armored vehicle, covered her in rugs and turned on the heat. Then he went back for her family.
Marik crossed the dam one more time on March 31 after the Russians retreated, pausing to await reinforcements.
He’d done his part to save Kyiv and its people as best he could. He’d acted like a surgeon with a scalpel, making small cuts to drastically change the course of the battle.
“I don’t think one person or another can say they stopped the assault on Kyiv,” he said. “Everyone did.”
Oksana Grytsenko contributed to this article. Maps by Emma Brown.