故事发生在1954年,两名美国联邦法警——泰迪·丹尼尔斯(莱昂纳多·迪卡普里奥 饰)和他的新搭档查克(马克·鲁法洛 饰)乘船来到波士顿附近的禁闭岛。这座岛上只有一座阿什克利夫精神病院,专门关押极其危险的精神病罪犯。

泰迪此行的公开目的是调查一名叫瑞秋·索兰多的女患者的离奇失踪。瑞秋因为溺死了自己的三个孩子而被关押,但她竟然从一个门窗反锁的病房里凭空消失了,只留下一张写着“第67号准则是谁?”的纸条。

随着调查深入,泰迪发现医院充满了诡异的气氛。主治医师考利医生虽然配合但似乎有所隐瞒,警卫们高度戒备,病人们的口供也语焉不详。同时,泰迪自己也深受偏头痛和恶梦的折磨,他在梦中不断看到死于火灾的妻子多洛雷斯,以及他在二战时解放达豪集中营目睹的惨状。

事实上,泰迪上岛有私心。他认为当年纵火烧死他妻子的凶手——安德鲁·雷迪斯,就被关在这座岛上。此外,他还怀疑这所医院在进行非法的纳粹式大脑切除实验,试图把人变成没有思想的空壳。

随着一场飓风切断了岛上与外界的联系,泰迪和查克决定强行调查。他们在禁区C栋遭遇了混乱,泰迪还在海边的山洞里“遇见”了真正的瑞秋(实际上这是他的幻觉),那个瑞秋告诉他,这里确实在进行洗脑和神经手术,一旦进来就别想清醒地出去。

深受震动的泰迪决定去揭穿这一切。他认为最黑暗的秘密——大脑切除手术,就在海边的灯塔里进行。他不顾一切地潜入灯塔,但在那里,他没有发现手术室,只看到了独自等待他的考利医生。

此时,全片最大的反转揭晓:

考利医生告诉泰迪,根本没有联邦法警泰迪·丹尼尔斯,也没有失踪的瑞秋。泰迪自己就是那个第67号病人——安德鲁·雷迪斯。

真相是这样的:安德鲁确实参加过二战,战后酗酒且有暴力倾向。他的妻子多洛雷斯患有严重的躁郁症,曾放火烧过房子,但安德鲁一直逃避面对妻子的病情,直到搬到湖边小屋后,悲剧发生。多洛雷斯在发病时将他们的三个孩子全部溺死在湖里。回家目睹这一切的安德鲁在极度悲痛和愤怒中,开枪杀死了妻子。

无法承受这种巨大罪恶感和痛苦的安德鲁,在精神崩溃后分裂出了第二人格——“泰迪·丹尼尔斯”。在这个幻想世界里,他是英雄警官,妻子是被别人(那个实际上就是他自己的安德鲁·雷迪斯)杀死的,他来这里是为了正义。

所谓的“调查”,其实是考利医生和全院工作人员陪他演的一场超大规模的角色扮演疗法,目的是让他把这种妄想演绎到极致,从而在逻辑崩溃中清醒过来。他的搭档“查克”,其实就是他的主治医师希恩医生。

在证据确凿的现实面前(包括名字的字母重组游戏:Edward Daniels = Andrew Laeddis),安德鲁终于崩溃并接受了真相,痛哭流涕。

影片的结局发生在几天后。看起来治疗似乎成功了,安德鲁恢复了理智。考利医生和希恩医生(查克)坐在台阶上观察他。如果他再次退回到幻想中,根据医院理事会的决定,他将被视为“无法治愈”而接受前额叶切除手术(变成废人)。

安德鲁此时转过头,眼神清澈地看着希恩医生,但他却叫了一声“查克”,似乎又变回了那个警官。希恩医生失望地向考利医生摇了摇头,示意手术准备开始。

然而,在起身走向手术人员之前,安德鲁对希恩医生说了最后一句意味深长的话:“像野兽一样活着,还是作为一个好人死去,哪一个更糟?”

这句话暗示了安德鲁其实已经清醒了。他记得自己杀了妻子和孩子,这份痛苦太沉重,让他无法像“野兽”(罪人安德鲁)一样苟活。所以,他选择假装自己疯了,以“好人”(警官泰迪)的身份去接受手术,用抹杀意识的方式来获得解脱。这是一个关于极度悲伤与自我毁灭的故事。