It's 1935, and Briony Tallis (SAOIRSE RONAN) is a precocious, 13-year-old English girl with a creative flair. Yet, she's displeased when her displaced cousins -- twins Pierrot (FELIX VON SIMPSON) and Jackson Quincy (CHARLIE VON SIMPSON) and their older sister, Lola (JUNO TEMPLE) -- don't seem best suited for her play. Accordingly, she turns her attention to her older sister, Cecilia (KEIRA KNIGHTLEY).
She's a socialite who hangs out with her brother, Leon (PATRICK KENNEDY) and his chocolate factory friend, Paul Marshall (BENEDICT CUMBERPATCH), when not carrying on a secret love affair with Robbie Turner (JAMES McAVOY), the son of the family's housekeeper, Grace (BRENDA BLETHYN).
Having already caught them having sex in the library and secretly reading his sexually graphic note to Cecilia, Briony forgoes her earlier crush on him in favor of viewing him as a sex maniac. Thus, when she comes upon a man raping or having sex with Lola, Briony lies that it was Robbie, just to get back at him for earlier rebuking her secret crush. He's arrested, imprisoned, and time passes by.
Four years later, Robbie has been released from prison to fight in WWII, but all that's left of his regiment is him and his comrades Tommy Nettle (DANIEL MAYS) and Frank Mace (NONSO ANOZIE), who are making their way through the bombed out remains of Dunkirk. At the same time, Cecilia has cut off all ties with her family and is now working as a hospital nurse, much like Briony (ROMOLA GARAI), who's now 18 and looking to atone her earlier misdeed. As she tries to find the two to ask for forgiveness, the lovers try to carry on their distant romance, an act recalled much later by a much older Briony (VANESSA REDGRAVE).