总体来说是一部古代琼瑶剧。王生(陈坤)打仗归来,带回一个女子小唯(周迅),小唯的聪明伶俐很快博得了周围人的喜欢,而小唯从被带来时就爱上了王生,一心想做王夫人。
城中开始频频出现有人被挖心的现象,王生的妻子佩蓉(赵薇)从细节处发现小唯不是普通人,怀疑她是妖,跟挖心的事有关。便去请来了甄子丹(不记得剧中名字了)一起想办法。与甄子丹同行的还有一个降魔者(孙俪),三人合力也没能证实小唯是妖。此时的王生一心相信小唯是无辜的。
小唯用计策让佩蓉喝了一杯会让佩蓉变成妖的什么东西,并答应:只要佩蓉向众人承认自己是妖,所有的人都是她杀的,并把王夫人的位子让你小唯,小唯就不再杀害其他的人了。佩蓉喝了,变成了白发魔女。大家都以为她就是那个挖人心的妖。只有甄子丹和孙俪相信她。
最后时刻,王生带着大队人马来捉妖,令人意外的是,佩蓉承认了自己是妖之后,王生说:只要是你做的,不管做错什么,我都和你一起承担!他决定和佩蓉一起死,看到这一幕的小唯惊呆了,没想到自己策划了这么久,结局会是这样。错愕之时,被甄子丹的大刀砍中,居然毫发无伤,王生亲眼看到了小唯才是妖。一番恶斗之后,死的死,伤的伤。小唯恍然觉悟,用自己的道行救了所有死去的人。
除了小唯和他的一个同伙被打回原形,其余人大团圆结局。