W 1939 r. Robbie Turner (James McAvoy) jest szeregowcem armii brytyjskiej, on i jego batalion udają się do Francji, aby wziąć udział w wojnie. Życie w wojsku to nie to, dokąd zmierzał, co cztery lata wcześniej przybrało radykalny obrót w posiadłości Tallis, gdzie dorastał, gdy jego matka pracowała jako gospodyni domowa Tallisów. W związku z tym dorastał z trójką dzieci Tallisów: synem Leonem (Patrick Kennedy) i córkami Cecilią (Keira Knightley) i Briony (Saoirse Ronan). Robbie i Cecilia właśnie wkraczali na etap swojego życia, kiedy byli w stanie wyznać sobie nawzajem swoją prawdziwą miłość. Ale wtedy trzynastoletnia aspirująca pisarka Briony również zakochała się w starszym Robbie. Bazując na dwóch incydentach, które widziała między Cecilią i Robbiem (jeden tylko z daleka), po przeczytaniu prywatnego listu, który Robbie napisał do Cecylii, oraz na podstawie własnych uczuć do Robbiego, Briony powiedziała kilka prawd i półprawd o Robbim, co zaowocowało tym zwrotem w jego życiu. Robbie jest w stanie ponownie połączyć się z Cecilią, zanim zostanie wysłany do Francji, i żyje tylko po to, by móc wrócić do Londynu, by być z Cecilią i nadrobić brakujące cztery lata, których nie mogli spędzić razem z powodu działań Briony. Rok później Briony (Romola Garai), obecnie osiemnastoletnia, również przyjeżdża do Londynu, aby rozpocząć pracę jako pielęgniarka wspierająca wysiłek wojenny. W tym czasie zdaje sobie sprawę ze szkód, jakie wyrządziła jej trzynastoletnia osoba, i chce zadośćuczynić za ten błąd Cecylii, z którą się rozstała, oraz Robbiemu, którego od tamtej pory nie widziała. Dokona tego przebłagania, nawet jeśli ani Robbie, ani Cecilia nigdy się z nią nie odezwą, albo jeśli zajmie to resztę jej życia.