月娥(张柏芝)是宋朝年间的烈女,武功了得,行侠仗义,追求专一的爱情和婚姻。一日在演诗会上偶遇一表人才的陈季常(古天乐),二人互生情愫。碰巧皇上为二人赐婚,成全了美好姻缘。但是考验二人感情的时候才刚刚开始——月娥为管住夫君,对季常管束甚严。但适得其反,季常在风流好友苏轼(许绍雄)的带领下经常去寻花问柳。月娥万般无奈,幸好用计试探,终得知季常仍深爱自己。但是,当月娥外出归来,却发现季常旧病复发,竟搭上了郡主(范冰冰)。月娥悲愤交加,喝下了忘情水。
南宋年间,通古县前任县令为了一己私利,利用“河神”为幌子暗中掳掠儿童,百姓惶惶不安,在其蛊惑下纷纷相信用孩童祭祀“河神”可以平息灾祸。宋慈受命来到通古,向百姓一再申明祭祀河神纯属无稽之谈,并保证一定会查出事情真相,他的到来使得老县令感觉到了威胁。在老县令的授意下,其党羽对宋慈阳奉阴违,并暗中施以压迫,企图神不知鬼不觉的将宋慈了结。在一波接一波的危险降临在宋慈身上时,孩童还在不断失踪,这使得老百姓对宋慈失去了信任,逼宋慈赶紧祭河神。宋慈顶着多方的压力,抽丝剥茧地调查,利用自己高超的法医学手段让尸体“开口说话”,逐渐锁定了真凶,并发现了背后的巨大阴谋。最终,宋慈不惜以性命相搏将真凶绳之以法。