

在亚特兰大郊区,顾家的男人威廉·邓肯(克莱夫·斯坦登饰)开车去接他16岁的女儿凯特(麦迪·尼科尔斯饰),凯特是一名垒球运动员,梦想成为职业球员。在去取外卖的路上,凯特向父亲保证,她会在专注于垒球的同时,努力学习成为一名律师。威廉进店点餐时,凯特被留在车里。这时,为父亲——犯罪头目唐尼·费特(布鲁斯·威利斯饰)效力的兄弟罗里(西奥·罗西饰)和丹尼(卡伯特·巴斯登饰)带着一群蒙面暴徒出现,不顾凯特的苦苦哀求,将她拖到车外。罗里告诉她,他们想要的只是她的灵魂,随后丹尼开枪打死了她。原来,这一切都是丹尼加入黑帮的入会仪式,他随机杀害了一个无辜的人。他们很快被警方逮捕,但威廉故意不指认丹尼,让他逍遥法外。 第二天晚上,威廉开车跟踪丹尼,撞了他一下,然后又用垒球棒将丹尼活活打死。丹尼对杀害凯特毫无愧疚或悔意,威廉见状,毫不示弱。回到家后,威廉清洗了汽车和球棒,并处理掉了沾满血迹的衣物。之后,他注意到衬衫上的血迹,洗掉后,因自己犯下的罪行而崩溃。 与此同时,罗里得知丹尼的死讯,立即赶往犯罪现场,却被告知调查仍在进行中。负责调查此案的警探尼尔·陈(库尔特·岳饰)查明了丹尼的身份,并拜访了威廉,告知他丹尼遇害的消息,并询问他当晚的行踪。威廉回答说他当时在家,并反问自己是否是嫌疑人。陈警探否认了威廉的嫌疑,但嘱咐他如果想到什么就打电话。威廉的妻子珍(劳伦·布格里奥饰)找到他,质问他当晚的行踪,并恳求他不要重蹈覆辙,同时透露威廉曾是海军陆战队员。 罗里盘问了在丹尼被杀地点试图拉皮条的妓女,并从照片上确认了威廉的身份后,第二天罗里和他的手下在一家咖啡馆伏击了威廉。威廉设法杀死了手下,但丢了钱包,钱包被罗里捡到了。 威廉匆匆赶回家,打电话给陈,告诉他真相。陈留下一辆警车保护他。威廉向珍坦白了自己的所作所为,珍提议两人私奔,但却遭到罗里和唐尼的伏击。他们开枪射杀了威廉和珍,珍当场死亡,威廉则被弃尸荒野。 威廉在医院醒来,一心复仇。陈探望他,并给了他一份关于唐尼和罗里的档案。威廉康复后,身穿清洁工制服逃出医院,换了身衣服,找了家汽车旅馆住下,还从银行取了些钱。回到旅馆后,威廉被一个名叫但丁(托马斯·简饰)的男人拦住。但丁透露自己认识威廉,知道他之前在法庭上遇到过威廉,并向他兜售枪支,还透露自己是个军火商,表弟被唐尼杀害。威廉向但丁讲述了自己的过去后,买下了枪支,搬到一个偏僻的地方开始训练。 事情结束后,威廉回到镇上,找到罗里的一个手下,逼他说出唐尼的下落,然后开枪打死了他。得知手下被杀后,唐尼命令罗里彻底除掉威廉。罗里和他的同伙出发寻找威廉,但威廉早已潜入夜总会,偷偷溜进去与唐尼对峙。他告诉唐尼,他已经对经历的一切都麻木了,杀戮对他来说现在习以为常,说完便开枪打死了唐尼。他用唐尼的手机给罗里打电话,告诉他父亲的死讯。 罗里到达夜总会后,看到父亲的尸体,却毫无反应。他憎恨父亲,因为唐尼总是说丹尼比他强。但他还是命令手下找到并杀死威廉。威廉伏击了罗里一行人,但逃到了汽车旅馆。之前认出他的妓女在那里向罗里告密。丹特得知伏击后,帮威廉取出了卡在体内的子弹。这时,罗里出现在汽车旅馆,呼喊威廉的名字。威廉向罗里一行人开火,他和丹特趁机逃跑,罗里紧追不舍。丹特打电话给他的朋友罗奇(迈克·泰森饰),罗奇设下埋伏,将他们击退。 丹特、罗奇和他的团伙知道他们还会回来,于是准备伏击。伏击中双方所有成员都被杀死,罗里杀死了罗奇,只剩下他和威廉。罗里朝威廉的腹部开枪,得意洋洋地看着他,威廉趁机拿起一把螺丝刀刺入罗里的脖子。罗里看着罗里死去,看到了自己摧毁威廉家庭给他带来的痛苦。但他知道威廉终于报了仇,也知道自己现在无能为力,只能慢慢死去。他带着侮辱的笑容,摆出一副他希望威廉永远记住的表情,直到咽气。丹特侥幸活了下来,听到警笛声后逃走了。 陈与威廉相遇并交谈了一会儿,随后威廉因伤重不治身亡。威廉最终为家人报了仇,他不仅杀死了臭名昭著的费特家族及其团伙,还摧毁了他们的社区,彻底终结了他们的罪恶,但代价是自己生命的逝去。威廉死后,陈表示他希望这一切是值得的。 最后,信息写道:“为自己复仇不仅是正确的,而且是绝对的义务”,这句话出自斯蒂格·拉森之手。