清朝末年,劉金喜(甄子丹飾)是一個與兩個兒子在偏遠小鎮安度日子的造紙工人,平靜的生活即將被一個闖入的偵探給打破。
徐百九(金城武飾)為了調查兩個強盜之死而來到小鎮,看似意外死於劉金喜的自衛反應的兩人,居然竟是武功高強的十大逃犯,一個手無寸鐵的村民如何能夠打死他們呢?對武術頗有研究的徐百九認定這絕不是意外,劉金喜必然是身懷絕技才能如此殺人於無形。隨著追查的深入,徐百九發現他與72地煞——江湖中最為殘暴邪惡、殺人不眨眼的組織聯繫緊密。而72地煞的教主,武藝則更是深不可測,無人能及。
徐百九越深入地研究劉金喜,就越覺得他也許並不是一個罪大惡極的人,徐百九開始相信“他要么是一個偽裝高手,要么便是真的改邪歸正了。”為了結束查案,徐百九不斷地襲擊劉金喜,試圖逼他用武功來反抗,但每每都不如願。劉金喜在此過程中嚴重受傷,迫使徐百九對他的懷疑有所動搖。正當所有的證據都讓徐百九的推論顯得荒唐時,劉金喜便是唐龍的確鑿情報傳來,他便是72地煞的二當家。昔日嗜血如麻的高手唐龍,有一天忽然從他的罪惡中清醒過來,決定以新的身份開始不一樣的生活。
關於唐龍下落的消息很快傳到教主那裡,不能接受唐龍背叛的他,威脅唐龍回歸組織,否則便要對所有的村落實行屠城。與此同時,徐百九正領著一隊精兵前來將劉金喜捉拿歸案。這三股勢不可擋的人馬聚集於小鎮,不可避免的戰鬥一觸即發。
自贖的道路染滿了鮮血,唐龍的命運落在了掙扎於情與法的徐百九手裡