On November 16th, 2027, a brief newscast (done by newsreaders Mishal Husain & Rob Curling) reports on the state of the world: women have become infertile and no children have been born for 18 years. Most of the world's societies have collapsed and in Britain all foreigners have been declared illegal immigrants and are rounded up by British military forces to be deported. Additionally, the youngest person in the world, the Argentine Baby Diego (Juan Gabriel Yacuzzi), has been murdered by one of his fans when he refused to give them an autograph. The newscast is watched by a saddened and stunned crowd in a Fleet Street coffee shop. A man, Theo Faron (Clive Owen), enters the coffee shop, seemingly indifferent to the news story or the crowd. Just after he leaves and stops to add liquor to his coffee, the shop is blown up by a bomb. The act is attributed to an underground guerrilla group, the Fishes. Theo is shaken by the incident and leaves work early, under the excuse of being shaken by Baby Diego's death, to visit his friend, Jasper (Michael Caine), who lives outside London. Jasper, a former political activist, now lives in seclusion in a well-hidden forest home with his catatonic wife, Janice (Philippa Urquhart), growing variants of cannabis.
The next day Theo is captured by The Fishes and is reunited with his former wife, Julian, who leads the group. She and Theo have not seen each other for nearly 20 years after their son, Dylan, died in a flu epidemic. She first tells him that the Fishes were not responsible for the bombing of the cafe the previous day -- one of her group angrily claims that the government bombed the cafe, trying to create discontent for the Fishes. Julian asks for Theo's help in securing transit papers; Theo's cousin, Nigel (Danny Huston), has influence within the government. Theo visits Nigel and is able to get the papers but they specifically state that Theo himself must accompany the refugee they are meant for. Theo agrees and he joins Julian (Julianne Moore), her associate Luke (Chiwetel Ejiofor), the refugee Kee (Clare-Hope Ashitey) and her midwife, Miriam (Pam Ferris) as they drive to the southern coast of England. Along the way, they are attacked in a forested area by a large mob and Julian is killed. As they flee the scene of the attack, they are pulled over by the police. When asked for their papers, Luke kills both policemen. A short funeral is held in the forest for Julian. Theo breaks off temporarily from the service and cries privately for Julian. Luke is able to find another car and drives them to a safe house on a farm where the Fishes gather.
At the farm Kee reveals to Theo that she is eight months pregnant. She also tells Theo that Julian had told Kee that she could only trust Theo. The Fishes hold a meeting to decide what to do with Kee. They conclude, despite Theo's objections, that Kee should stay with them until the child is born. Theo thinks the pregnancy should be made public, the Fishes think that the British government would seize both Kee and the baby for their own political ends. They leave the decision to Kee, who agrees to stay in the custody of the Fishes.
Later that night, Theo awakens to a commotion outside. Two of the men who attacked the travelers that day have come to the safe house, one of them badly wounded, the other is one of Julian and Luke's operatives, the sociopathic Patric (Charlie Hunnam). Theo eavesdrops on their conversation and discovers that the attack on the car and Julian's murder were both arranged by Luke and the Fishes, who wish to use the baby for their own ends. Luke & the others plan to kill Theo the next day. He quietly awakes Kee and Miriam and convinces them to leave with him. They steal a car and narrowly escape the farm after Theo is able to disable their other vehicles.
Theo takes them to Jasper's house. While there, Jasper makes arrangements for Kee to meet a ship called the Tomorrow, a vessel belonging to a group called the Human Project, a collection of scientists based in the Azores off Portugal, and dedicated to restoring human fertility. Jasper arranges for his friend, Syd, an immigration officer, to help Kee, Miriam and Theo enter the immigrant camp at Bexhill. From there, they will make arrangements for Kee to slip into the English Channel near Bexhill to meet the Tomorrow.
The Fishes find Jasper's hidden home, setting off the alarms. Jasper lets Theo take his car and gives them an escape route. From a nearby bluff, Theo watches as Jasper refuses to give the Fishes any information and is cruelly murdered by Luke. Before the Fishes arrival, Jasper had euthanized his wife and dog. Miriam tries to comfort Theo, who angrily rebuffs her and orders her into Jasper's car.
Theo drives them to a nearby abandoned school to hide out and wait for Syd. While there, Miriam talks of her past work as a midwife and the onset of female infertility 18 years prior. Syd arrives, acting very intimidating at first, but takes the fugitives in his truck to Bexhill once Theo says the passphrase ("You're a fascist pig.") arranged by Jasper. As they approach the detention center, Kee goes into labor. When they arrive, Miriam, while trying to protect Kee from the guards, fakes religious mania and is taken off the bus, hooded and detained, however, her fate is not revealed. Theo and Kee manage to enter Bexhill with her pregnancy undetected and meet a woman named Marichka (Oana Pellea) who takes them to a dingy room. Right after they reach the room, Kee gives birth to a girl.
The next morning they are met by Marichka and Syd, who tells them about an uprising that has taken over Bexhill. The Fishes have broken into the city and the national guard have been called out to restore order. Both Syd and Marichka are astonished to see the baby. Syd, having seen Theo on television the night before, plans to turn him in for a large reward, Theo being a prime suspect from the attack on the road. With Marichka's help, they escape from Syd and find a temporary haven with Marichka's people. Marichka is also supposed to take them to a boat that will get them to the Tomorrow in Bexhill's harbor.
Theo, Marichka and Kee enter the city and are quickly found by Luke and his cohorts. They take Kee and her baby and leave Theo and Marichka to be executed by Patric. They are able to escape when a skirmish erupts nearby, splitting them up. Patric and a few of Luke's men begin shooting at the national guard and Luke takes off with Kee. Theo goes looking for Kee, finding her in a decrepit apartment building which is under fire from the military with many horribly injured people laying amid the dead. While searching for Kee and Luke, Theo sees Patric being hit and killed by gunfire. Theo finds Kee with Luke, who is shooting at the British forces outside. Luke remarks in a distraught tone about how the baby started crying, the sound hitting him very hard. As Theo attempts to take Kee and the baby out, Luke opens fire in Theo's direction -- Luke is killed a few moments later. As Theo and Kee walk out of the building, everyone who sees the baby stands in awe and the fighting stops, many of them break into prayer. The two walk outside the building and begin to walk away. The fighting resumes. They find their way back to Marichka and the rowboat she's holding for them and float out into Bexhill's harbor. Marichka refuses to leave with them and pushes the boat out.
The two make it out to a nearby buoy which marks the rendezvous point. As they wait, jets fly overhead and begin a bombardment of Bexhill. Kee sees blood in the bottom of the boat and panics, thinking it's hers. Theo tells her he was hit in the abdomen when Luke shot at him. Theo has just enough time to teach Kee how to burp the baby and she tells him that she'll name her after Theo's son, Dylan. Theo loses consciousness just as the Tomorrow arrives. Just before the closing credits roll the sound of children laughing is heard.