Briony Tallis, a 13-year-old English girl with a talent for writing, lives at her family's country estate with her parents. Her older sister Cecilia attends the University of Cambridge with Robbie Turner, the son of the Tallis family housekeeper and a childhood friend of Cecilia's. In the summer of 1935, Briony's maternal cousins, Lola and twins Jackson and Pierrot, visit the family. Briony witnesses a moment of sexual tension between Cecilia and Robbie from afar. Briony misconstrues the situation and concludes that Robbie is acting aggressively toward Cecilia. Robbie, meanwhile, realises he is attracted to Cecilia, whom he has not seen in some time, and writes several drafts of a love letter to her, giving a copy to Briony to deliver. By accident he gives her a version he had meant to discard, which contains lewd and vulgar references ("cunt"). Briony reads the letter and becomes disturbed as to Robbie's intentions. Later she walks in on Robbie and Cecilia making love in the library. Briony misinterprets the sexual act as rape and believes Robbie to be a "maniac".
Later on at a family dinner party, attended by Briony's brother Leon and his friend Paul Marshall, it is discovered that the twins have run away and the dinner party breaks into teams to search for them. In the darkness, Briony discovers her cousin Lola, apparently being raped by an assailant she cannot clearly see. Lola is unable or unwilling to identify the attacker, but Briony decides to accuse Robbie and identifies him to the police as the rapist, claiming she has seen Robbie's face in the dark. Robbie is taken away to prison, with only Cecilia and his mother believing his protestations of innocence.
By the time that World War II has started, Robbie has spent several years in prison. He is then released on the condition of enlistment in the army to fight in the war. Cecilia has trained and become a nurse. She has cut off all contact with her family because of the part they took in sending Robbie to jail. Robbie and Cecilia have only been in contact by letter, since she was not allowed to visit him in prison. Before Robbie has to go to war in France, they meet once for half an hour during Cecilia's lunch break. Their reunion starts awkwardly, but they share a kiss before leaving each other.
In France, the war is going badly and the army is retreating to Dunkirk. As the injured Robbie goes to the safe haven, he thinks about Cecilia and past events like teaching Briony how to swim and reflecting on Briony's possible reasons for accusing him. His single meeting with Cecilia is the memory that keeps him walking, his only aim is seeing her again. At the end of part two, Robbie falls asleep in Dunkirk, one day before the evacuation.
Remorseful Briony has refused her place at Cambridge and instead is a trainee nurse in London. She has realised the full extent of her mistake, and decides it was Paul Marshall, Leon's friend, whom she saw raping Lola. Briony still writes, although she does not pursue it with the same recklessness as she did as a child.
Briony is called to the bedside of Luc, a young, fatally wounded French soldier. She consoles him in his last moments by speaking with him in her school French, and he mistakes her for an English girl whom his mother wanted him to marry. Just before his death, Luc asks "Do you love me?", to which Briony answers "Yes," not only because "no other answer was possible" but also because "for the moment, she did. He was a lovely boy far away from his family and about to die." Afterward, Briony daydreams about the life she might have had if she had married Luc and gone to live with him and his family.
Briony attends the wedding of her cousin Lola and Paul Marshall before finally visiting Cecilia. Robbie is on leave from the army and Briony meets him unexpectedly at her sister's. They both refuse to forgive Briony, who nonetheless tells them she will try and put things right. She promises to begin the legal procedures needed to exonerate Robbie, even though Paul Marshall will never be held responsible for his crime because of his marriage to Lola, the victim.
The fourth section, titled "London 1999", is written from Briony's perspective. She is a successful novelist at the age of 77 and dying of vascular dementia.
It is revealed that Briony is the author of the preceding sections of the novel. Although Cecilia and Robbie are reunited in Briony's novel, they were not in reality. It is suggested that Robbie Turner may have died of septicaemia - caused by his injury - on the beaches of Dunkirk, and Cecilia may have been killed by the bomb that destroyed the gas and water mains above Balham Underground station. Cecilia and Robbie may have never seen each other again. Although the detail concerning Lola's marriage to Paul Marshall is true, Briony never visited Cecilia to make amends.
Briony explains why she decided to change real events and unite Cecilia and Robbie in her novel, although it was not her intention in her many previous drafts. She did not see what purpose it would serve if she gave the readers a pitiless ending. She reasons that they could not draw any sense of hope or satisfaction from it. But above all, she wanted to give Robbie and Cecilia their happiness by being together. Since they could not have the time together they so much longed for in reality, Briony wanted to give it to them at least in her novel.