倫敦。退役網球選手托尼·溫戴斯(雷·米倫飾)和妻子瑪格特(格蕾絲·凱利飾)住在一間體面的公寓裡。表面上看,這是一對恩愛夫妻。但托尼知道一個秘密:瑪格特有外遇。她的情人是美國推理小說作家馬克·哈利迪(羅伯特·卡明斯飾)。
托尼並不愛瑪格特,但他需要她的錢。如果離婚,他將一無所有。如果瑪格特死了,他就能繼承全部財產。
於是,托尼開始策劃一場完美的謀殺。

完美計劃
托尼聯絡了大學時代的老同學查爾斯·斯旺(安東尼·道森飾),一個落魄的騙子。托尼不動聲色地向斯旺展示了自己掌握的把柄——斯旺過去犯下的詐騙案證據。然後他提出交易:斯旺替他殺死瑪格特,酬金一千英鎊。如果斯旺拒絕,托尼就把證據交給警方。
計劃精密到了每一個細節:
托尼會在某天晚上帶馬克去參加晚宴,確保自己有不在場證明。晚上十一點整,托尼會從外面打電話回家。電話鈴聲會把瑪格特從睡夢中吵醒,她會走到客廳接電話——這時斯旺已經藏在窗簾後面,趁她背對窗簾時用圍巾勒死她。
關鍵道具是一把鑰匙。托尼把自己的公寓大門鑰匙事先藏在樓梯口的地毯下面,斯旺用這把鑰匙進入公寓,行兇後再把鑰匙放回原處。這樣就不會有撬鎖的痕跡,看起來像是闖入者犯案。
意外

行動之夜。一切按照計劃進行。托尼帶著馬克去了酒館,然後準時在十一點撥通了家裡的電話。瑪格特被鈴聲吵醒,走到客廳拿起話筒。斯旺從窗簾後面衝出來,用圍巾勒住了她的脖子。
但瑪格特沒有按照計劃死去。
在瀕死的掙扎中,瑪格特的手在書桌上摸索,摸到了一把剪刀。她用盡全力將剪刀刺入了斯旺的背部。斯旺倒在了地上,死了。
托尼在電話那頭聽到了這一切。他短暫地慌亂了幾秒,但很快冷靜下來。他立刻趕回公寓,開始現場佈置:他把瑪格特寫給馬克的情書放進斯旺的口袋,試圖讓警方相信斯旺是因為勒索瑪格特被拒後行兇的。同時,他悄悄拿走了斯旺口袋裡的那把公寓鑰匙(本來屬於托尼自己),換成了瑪格特手提包裡的鑰匙。

嫁禍
警方到場後,托尼表演了一齣痛心疾首的丈夫戲碼。但他的計劃更深一層——他不打算讓事情止步於「正當防衛」。
在接下來的調查中,托尼巧妙地引導證據指向瑪格特:他讓警方相信,是瑪格特主動約斯旺來公寓,因為斯旺手握她的情書,一直在勒索她。當晚斯旺來取錢,兩人發生爭執,瑪格特用剪刀殺了他。
證據鏈條看起來無懈可擊:斯旺口袋裡有瑪格特的鑰匙(說明是瑪格特事先給他的),有情書(證明勒索關係),而瑪格特承認自己存了一筆錢(被解讀為準備支付封口費)。
瑪格特被逮捕,被指控謀殺罪,被判處死刑。

賀伯特探長
馬克始終不相信瑪格特有罪。他自己嘗試重新推理整個案件,甚至編出了一個接近真相的理論——但被托尼輕鬆化解。
真正的轉折來自賀伯特探長(約翰·威廉士飾)。這位不動聲色的老警察從一開始就覺得案件有些不對勁。他注意到了一個被所有人忽略的細節:鑰匙。
斯旺是怎麼進入公寓的?如果是瑪格特給他的鑰匙,那瑪格特自己就沒有鑰匙了。但瑪格特的手提包裡有一把公寓鑰匙。那麼斯旺口袋裡的那把鑰匙是從哪來的?
賀伯特設了一個陷阱。他讓托尼用自己的鑰匙打開公寓門,但托尼的鑰匙打不開——因為他口袋裡的那把其實是斯旺的鑰匙(兩人在案發現場被他調換了)。真正的公寓鑰匙還藏在樓梯地毯下面,是托尼之前為斯旺準備的那把。
賀伯特故意把托尼支走,然後讓他回來。托尼發現自己口袋裡的鑰匙打不開門,下意識地去樓梯地毯下摸索,找到了那把藏起來的鑰匙,打開了門——走進去後,他看到賀伯特、馬克和警察們已經在客廳等著他了。

托尼看了看眾人的表情,沉默了片刻。他知道一切都結束了。他平靜地走到酒櫃前,給自己倒了一杯威士忌,問賀伯特:「要來一杯嗎?」
一個近乎完美的計劃,敗在了一把鑰匙上。