第二次世界大战期间,中国河北挂甲台村的农民马大三(姜文饰)在日本人的统治下过着平静的生活。一个晚上,游击队绑架了日军陆军士兵花屋小三郎(香川照之饰)和翻译董汉臣,把他们捆绑塞入麻袋放在马大三家里,并吩咐马好好看管,几天后的大年三十来带人。马大三和村民战战兢兢地看守两人,花屋小三郎和董汉臣数次发出求救信号,皆被村民化解。半年过去了,村民们担心事情暴露,却又不敢把花屋等放了。 马大三最终被董汉臣说动,把花屋和董送到了日军宪兵队驻地,以换取粮食。日军宪兵军官酒冢猪吉是花屋的同乡。他表面上对马等人客气,但背后指责花屋让皇军蒙耻并殴打了他。宪兵队整队去马的村子里和村民联欢送粮,酒到酣时却乍露杀机。
垂拱四年,狄仁杰任江南巡抚使,在一次前往下辖的临安县视察过程中,遇到了一起乱案。老汉孟云德状告其姑爷李大有杀害自己的女儿孟香莲和儿子孟杨,而李大有则反告自己的岳父将孟香莲藏起来意欲再嫁他人。原来孟香莲和李大有在一次争吵中一气之下回了娘家。 而在孟香莲回娘家之后,李大有母亲一气之下便生了病,没办法李大有只能将孟香莲请回照看。李大有来到孟香莲家百般劝说,孟香莲答应回去,但天色已晚只能等到第二日由弟弟孟杨送回。李大有由于担心母亲,当夜便赶了回去。然而过了几日也没见孟香莲回来,李大有再去要人,却被岳父告知两人早就出发。两个大活人凭空消失,李大有便怀疑岳父将自己妻子藏匿起来想要另嫁他人,孟云德也怀疑李大有杀害自己妻子和儿子。临安县令周从善不知如何是好,只能求助狄仁杰。