故事背景为1917年中国云南腾冲的刘家村。 刘金喜(甄子丹 饰)和妻子阿玉(汤唯 饰)共同抚养著两个儿子方正(郑伟 饰)和晓天(李家民 饰),日子过得平淡安宁。有一天,外地来的两名劫匪企图洗劫村中的柜坊,被刚好在此的金喜撞见,一阵混乱打斗过后,二名匪徒稀里糊涂被刘金喜打死。死去的匪徒其中一人是政府十大通缉要犯阎东生,因此县官大喜过望,村里人也将刘金喜奉为大英雄。 不过,这看似普普通通的盲打误杀却引起一个人的怀疑,他就是县衙捕快徐百九(金城武 饰)。从蛛丝马迹上来看,二匪皆是死于武功高人之手,以刘金喜区区造纸工人的身手,不可能将两人打死。徐百九因此留在村里,对刘金喜展开了连番的观察、调查与试探,后来终于发现,原来刘金喜的真实身份,其实是「七十二地煞」的二当家唐龙。 当徐百九回到县城后,便向当地衙门拿取牌令准备捉拿唐龙,却不知衙门的负责人将这件事情密报给了「七十二地煞」的教主(王羽 饰),也就是唐龙的师傅。在徐百九的警队到达刘家村之前,「七十二地煞」的人马早已抢先一步到达,刘家村也陷入了即将灭顶的危机之中……