浙江人宁采臣,性格慷慨豪爽,品行端正,总说自己绝不纳妾。
一次路过一个山中庙宇,发现景色很美,想要留下在这里读书。但四下没有人,于是就一边散步一边等着僧人回来。直到傍晚,才有人来。原来来的这个人也不是寺院的主人,也是借宿的。互问姓名之后,宁采臣得知对方叫燕赤霞。两人一直聊到深夜才各自回去睡觉。宁采臣因为是新换了住地,有些不习惯,很久都没睡着。他听到北面有动静,起来偷偷张望,看到矮墙外有个人家,一个四十多岁的妇人和一个老太太在说话。妇人说:“小倩怎么很久都没来了?”老太太说:“可能是她喜欢的人来了吧。”“她没有抱怨吗?”“没有,但我也看得出来她不乐意。”妇人说:“那孩子懂什么!”话刚说完,就有个十七八岁的漂亮女孩来了。老太太笑着说:“背地里不能说人坏话,我们正谈到你,你就悄悄地过来了,幸亏没说你坏话。你就像画里的人一样漂亮,我要是个男的也会被你迷住的。”女孩说:“姥姥不要乱说,有谁说我漂亮了吗?”三人说起话来,宁采臣就去睡觉了没有再往下听。过了会儿,都安静下来了,宁采臣刚要睡着,觉得屋里好像来人了,急忙起来发现是刚才的那个女孩,吓得忙问是怎么回事。女孩笑着说要和宁采臣同床共枕。宁采臣一脸正气地说:“你不要瞎说,人言可畏,不能一时疏忽,就丢掉了礼仪廉耻啊。”女孩说这么晚不会有人知道。宁采臣还是不同意。女孩就反复地劝说他。宁采臣终于生气了说:“你赶紧离开,要不然我就要喊人了。”女孩害怕了,退出去了。但不一会儿她又回来了,放了一块黄金在床上。宁采臣把金子扔到一边说:“不义之财,不要侮辱我了。”女孩捡起金子惭愧地离开了,心想:“这才是真正的男子汉啊。”
后来,有个公子带着仆人借宿在庙里的东厢房,准备考试。没想到过了一夜那个公子就死了。检查之后,人们发现他脚心有个像被锥子扎了的小孔,还有点点血迹。又过了一夜,那个仆人也死了,也只是脚心有个小孔,不知道因为什么而死。等到傍晚,燕赤霞回来了,宁采臣问他对这事怎么看,他认为是有妖精。宁采臣一向不信这些,所以一点也不在意。凌晨时分,那个女孩又来了,说:“我见过许多人,但都没有像您这样能不受迷惑的。您真是正人君子啊,我不敢欺辱了。我叫聂小倩,18岁就死了,被埋在寺院旁边,被妖精威胁来杀人,并非是我自愿啊。今天没有可杀的人了,恐怕那妖精要亲自来杀你了。”宁采臣这才害怕起来,求小倩给想个办法。小倩说:“只有你和我在一个房间里才能躲过妖精。”宁采臣问为什么不去诱惑燕赤霞,小倩说:“那是高人,我不敢靠近的。”宁采臣又问:“你是如何迷惑人的呢?”“那些想和我亲近的人,我就悄悄用锥子扎他们的脚,他们就会昏过去,我再抽取血液给妖精吃;或者给他们金子,其实不是金子而是恶魔的骨头,他们要是留下了,就会被挖出心肝。用财色两种办法,总能投其所好的。”宁采臣很感谢小倩对自己讲了实情,又问了问妖精什么时候会来。小倩回答说:“明晚就会来。”走的时候,小倩哭着说:“我在苦海之中,不能脱身,您是侠义的人一定会救我的。如果可以把我的尸骨移到别处安葬,就是对我有再造的恩情啊。”宁采臣答应了并问她葬在哪里。小倩说:“只要记住白杨树上有鸟巢的,就是我的墓穴了。”说完就离开了。
第二天,宁采臣怕燕赤霞会出去,早早就把他叫到自己屋里,一起喝酒吃饭,乘机也仔细观察他有什么特别的地方没有。宁采臣不想让他再回去睡觉,但燕赤霞却推脱说喜欢安静。宁采臣不答应,直接去把他的被子拿来了。不得已,燕赤霞只好留下了,但却嘱咐说:“我有些事情现在不便告诉你,你千万不要偷看我的箱子,否则对你我都不好。”入睡时,燕赤霞把箱子放在窗户旁边。不一会儿,燕赤霞睡熟了,呼噜声很大,宁采臣却一直睡不着。等到夜深了,窗外有人影闪动,还往屋里面看。宁采臣吓得正要喊燕赤霞。忽然间那个箱子裂开了,一道白光闪出,把窗户的外框都劈断了,忽然一下子又收回了箱子里。这时燕赤霞觉察到了动静,翻身起来,宁采臣假装睡着了,观察着燕赤霞的举动。只见他从箱子里取出一个东西,对着月光又是闻又是看,是一个长二尺,韭菜叶宽的亮晶晶的东西。他包了好几层布又放回了箱子里,自言自语道:“你这个妖精胆子太大了,竟然弄坏我的箱子。”说完就又躺下睡觉去了。宁采臣实在是太好奇了,就从床上爬起来了,把自己知道的都告诉燕赤霞了。燕赤霞说:“既然我们已经是知己了,我就不隐瞒了。我是一个剑客,如果刚才不是窗框挡了一下,那个妖精一定立刻死了,现在只是受伤了而已。”宁采臣又问箱子里装的是什么。“是我的剑,闻了闻有妖气。”宁采臣想要看看那柄剑,燕赤霞很爽快地答应了。果然是闪闪发亮的一柄小剑。第二天,宁采臣果然发现窗外有血迹,然后他又去了寺庙的北边,找到了小倩的墓穴。后来宁采臣要离开寺院时,燕赤霞为他饯行,还送给他一个破剑袋说可以保护他不受妖精侵害。宁采臣想要学习法术,燕赤霞说:“你是个正直的人,本来是可以学这个的。但你已经是富贵的人了,就没有必要学这个了。”宁采臣撒谎说有个妹妹原来葬在寺院边上,现在他要把遗骨带回老家安葬,于是把小倩的遗骨带上,就坐船回家了。