Anglia, 1935 rok. Trzynastoletnia Briony niesłusznie oskarża syna służącej, Robbiego (James McAvoy), o zgwałcenie swojej kuzynki. Rujnuje życie chłopaka i własnej siostry, zakochanej w nim Cecilii (Keira Knightley). Robbie trafia do więzienia, a po wybuchu wojny - na front. Drogi jego i Cecilii rozchodzą się na zawsze. Po latach Briony (Romola Garai) postanawia odkupić swoją winę.