1935年のイングランド。政府官僚の娘セシーリア(キーラ・ナイトレイ)は、屋敷で働く使用人のロビー(ジェームズ・マカヴォイ)に密かな恋心を抱いていた。ある昼下がり。2人の些細な諍いから、噴水に落ちた花瓶を拾おうとセシーリアは服を脱いで水に飛び込むが、その結果ロビーに下着姿を見られてしまう。気まずくなったロビーは謝罪の手紙を書くが、彼女に対する思いがこみ上げ、猥雑な文面になってしまう。彼は書き直した手紙を彼女に手渡すよう、セシーリアの妹ブライオニー(シアーシャ・ローナン)に依頼。しかし、ブライオニーが受け取ったのは最初の手紙。噴水の一件も密かに目撃していた彼女は、好奇心からその手紙を読んでしまう。手紙の間違いに気付いたロビーは、セシーリアに謝ろうとするが、却って互いの正直な気持ちを伝えることになる。暗がりで愛し合う2人。だが、その現場を目にしたブライオニーはロビーに対する嫌悪と恐怖を募らせていく。その夜、従姉妹のローラ(ジュノー・テンプル)が何者かに襲われる。現場から逃走する人影を見たブライオニーは、それがロビーだったと警察に証言。連行されるロビーの耳元でセシーリアは囁く。“戻ってきて。私のところへ。”4年後。刑務所から出征したロビーはドイツとの戦争の最前線にいた。セシーリアとの再会を夢見ていた彼だったが、負傷して意識を失ってしまう。一方、セシーリアとロビーに詫びる機会を窺っていたブライオニー(ロモーラ・ガライ)は、ついに姉に真実を語る。ローラを襲ったのは、ロビーではなかったと。口論になる2人の前に姿を現したのはロビー。彼はブライオニーに詰め寄ると“真相を書面に残してくれ。そして、二度と姿を見せるな”と告げる。1999年。作家となりテレビ局でインタビューを受けていた77歳のブライオニー(ヴァネッサ・レッドグレイヴ)の口から、もう一つの真実が語られるのだった。