根据中国古典名著《聊斋志异》改编。秦汉年间,都尉王生(陈坤 饰)率王家军在西域苦战,并救回一女子小唯(周迅 饰)。王生并没有看到在他到来之前,小唯刚刚吞食完人心以保持人形。九霄美狐小唯对王生一见钟情,跟随他回家后以妹妹自居,眼看王生与佩容(赵薇 饰)夫妻情深,暗地里想取代佩容地位成为王生妻子。深爱着小唯且一直为她杀人取心的蜥蜴精小易几度向小唯表白,却被小唯怒吼而走。
城里越来越多的人死于心脏被挖,王生誓要查个水落石出,佩容已经觉得小唯异于常人且对丈夫有意。碍于王生对小唯的一片信任,她唯有去寻求当年负气出走的旧情人庞勇(甄子丹 饰)帮忙,而降魔者夏冰出于天命亦自告奋勇去除妖。
佩容所作一切但求王生安好,王生心痛佩容不相信自己,小唯委曲求全希冀得到爱情,庞勇和夏冰已蓄势待发。