Through a series of tragic misunderstandings and false accusations by a young Briony Tallis, Robbie Turner (James McAvoy) is arrested for sexually assaulting Cecilia Tallis' (Keira Knightely's) cousin. Robbie is sent to prison and four years later, once released from prison but now a soldier during World War I, Robbie and Cecilia meet again and she tells him that she loves him and when the war is over, to come back to her.
Meanwhile, Briony has grown into a young woman and starts to realize that is wasn't Robbie she saw that fateful night assaulting her cousin, it was a houseguest they had that summer. Briony decides to contact Cecilia, tell her she is sorry and go to the authorities to clear Robbie's name. Cecilia and Robbie agree that Briony must do all that to make amends and that she is never to contact them again.
It appears that the story ends there - happily for the young lovers. However, an older Briony, now in her 70s and dying, is being interviewed about her new book "Atonement", which is her autobiography surrounding the events of Cecilia and Robbie. Briony tells the viewers that although the story is written where all make amends, in truth, Robbie died of a terrible infection from a war wound before he ever got home to Cecilia and Cecilia was later killed when a bomb caused the underground shelter she was taking refuge in to flood. Briony explains that at least in her book, the two lovers can be together forever even though in life they were never given that chance.