马林,是琼州的文士。有一次,他偶然从外地回家,乘船在海上行驶,遭遇飓风。船眼看就要被浪打翻,忽然飘来一条空船,他急忙跳上去,回头一看,同船的人都被淹没了。风越来越狂,他闭着眼任风吹船行驶。
过了一会儿,风停了,马林睁开眼,忽见一个岛屿,房舍成片。他划着船靠近岸边,直到村口。村中寂静无声,马林走一会坐一会,很长时间,连鸡狗的叫声都听不到。马林看见一个朝北的大门,松竹掩映。这时已是初冬,墙内不知是什么花,满树蓓蕾。他心中很喜欢这种花,就慢慢地走进去。远远地听见弹琴声,就稍稍停下步子。这时一个婢女从里边出来,大约十四五岁,长得十分艳丽,看见马林,反身又进了屋。接着,听到琴声歇止,一个少年走出来,惊讶的问马林从什么地方来。马林详细地告诉了他。又问马林的家事,马林又告诉了他,少年高兴地说:“我们是姻亲啊!”接着就客气地请马林进院子里来。
院中房舍华丽,又传来琴声。走进房中,见一个少妇端坐着,正在调琴弦,年龄大约在十八九岁,光采照人。少妇看见客人进来,推开琴想避开,少年止住她说:“不用走,这个人是你家亲戚。”就替马林说了根由。少妇说:“原来是我侄子。”问马林:“祖母还健在吗?父母多大岁数了?”马林说:“父母四十多岁,都很安好。只是祖母年已六旬,得了重病,久治不愈,连走路都要人扶。侄儿实在不知道姑姑是哪一房的?请明白告诉我,以便回去告诉家人。”少妇说:“路途遥远,和你家早就断了音信了。你回去只要告诉你父亲十姑问候他,他自然就知道了。”马林问:“姑丈是哪族?”少年说:“海屿姓晏。这岛叫神仙岛,离琼州三千里路,我流寓这里时间也不长。”十娘进去,让婢女备办了酒食招待客人。新鲜的菜肴香美可口,也不知道叫什么名字。吃完饭,晏生带着马林四处游览。马林见园中桃花、杏花含苞待放,非常奇怪。晏生说:“这里夏天无酷暑,冬天无大寒,四季花开不断。”马林高兴地说:“真是仙乡啊!回去告诉父母,搬家来和你们作邻居。”晏生只是微笑。
回到书斋,点起蜡烛,见琴横放在桌案上,马林请求聆听一下晏生演奏的琴曲。晏生就抚琴调弦,这时十娘从里面出来,晏生说:“来,来!你为你的侄子弹一曲吧。”十娘坐下,问侄子:“愿意听什么曲子!”马林说:“侄儿从来没读过《琴操》,实在说不出愿听什么曲子。”十娘说:“只要随意出个题目,都可以弹出曲调。”马林笑着说:“海风引舟,也可以作一支曲子吗?”十娘说:“可以。”于是拨弦弹奏起来。像早有曲谱,意调激昂,奔腾入耳。马林静静地领会,好像自身仍在船上,被飓风吹得随波颠荡。马林惊叹至极,说:“我可以学学吗?”十娘把琴给他,让他试着勾拨琴弦,说:“可以教你。想学什么曲调?”马林说:“刚才弹奏的‘飓风操’,不知道几天能学会?请先把曲写下来。我读熟它。”十娘说:“这个曲子没有文字,我是按自己的意想谱曲的。”就另拿了一张琴,作勾剔的动作,让马林照着做。马林练习到起更后。音节大略能合得上,晏生夫妻二人才告辞离去。马林专心一意,对着蜡烛自己弹奏,时间一长,就领悟到了其中的奥妙,不禁高兴得手舞足蹈。一抬头,忽见一个婢女站在灯下,马林吃惊地说:“你还没有走啊?”婢女笑着说:“十姑命我等你睡下后,关好门把灯移开。”马林仔细看婢女,见她眼睛明亮,姿态媚人,怦然心动。微微地挑逗她,婢女只是低头笑。马林更加迷了,猛地站起来搂住她的脖子,婢女急说:“不要这样!夜已经四更了,主人要起来了。如果我们有意,明天晚上也不晚。”正在戏弄拥抱时,听到晏生呼唤:“粉蝶!”婢女变了脸色说:“坏了!”急忙跑出去了。马林偷偷地跟过去听着,只听晏生说:“我本来就说这个婢女尘缘未灭,你一定要把她收下来,现在怎么样?应该打她三百鞭子!”十娘说:“这丫头有了这种心思,不能再使唤了,不如干脆给我侄子算了。”马林听了既惭愧又害怕,回到书斋灭了灯睡下了。天亮后,有个童子来侍候他盥洗,没有再看见粉蝶。马林心中惴惴不安,恐怕受到谴责被赶走。不多会,晏生与十姑一块出来,好像没把那件事放在心上,就考他的琴技。马林弹了一曲,十娘说:“虽然还没达到出神入化的境界,但已经学到十之八九了。练熟了就可以达到神妙的地步。”马林又请求教别的曲子。晏生教了他“天女谪降”之曲。这支曲子指法很难,马林练习了三天,仅能成调。晏生说:“已经学了个大概,以后只须熟就行了。只要练熟这两首曲子,就再没难弹的曲调了。”
马林很想家,告诉十娘说:“我住在这里,承蒙姑姑抚养。十分快乐,只是担心家中人悬念。这里离家三千里。不知什么时候才能回到家里!”十娘说:“这并不难,你原来坐的船还在,我助你一帆风。侄子没有成家,我已让粉蝶先去了。”又赠送他一张琴,并给他些药说:“回去给祖母医病。这药不但能治好病,还可以延年益寿。”说完就把马林送到海岸,让他上船。马林找船浆,十娘说:“不需要这东西。”说完,解下裙子当作船帆,系到船上。马林担心会迷路,十娘说:“不要担忧,只管听凭风帆飘荡。”系好了帆,马林上了船,心情凄然,正想拜谢告别,忽然刮起南风,离岸边已经很远了。马林见船上已经准备了干粮,但是只够吃一天的。心中埋怨十娘吝啬。肚子饿了,又不敢多吃,怕一下子吃光,只吃了一块胡饼,觉得胡饼里外又甜又香。剩下的六七块,马林珍重地保存起来,也不觉得肚饿了。夕阳要下山了。马林正后悔来时没有要灯烛,转瞬间,远远看见有人烟。仔细一看,原来是琼州。马林高兴极了,一会儿就到了岸边。他解下裙子,裹好胡饼,就回家了。
进了门,全家人十分惊奇,原来马林离家已经十六年了。这时马林才知道他遇到了神仙。看到祖母病重,马林便拿出药让祖母吃了,多年的重病立刻好了。家里人都奇怪地问他,马林就把见到的事情都讲了。祖母伤心地说:“那是你姑姑啊。”当年,老夫人有个小女儿,名叫十娘,生来就有仙姿,许配给晏家。女婿十六岁时,进山没有回来,十娘等到二十多岁,忽然没病死了,埋葬了已经三十多年了。听了马林的话,大家都怀疑十娘没死。马林拿出裙子,正是十娘当年在家里穿的那条。马林又把胡饼分给家人吃,只吃一块,一天都不饿,而且精神倍增。老夫人命人打开十娘的棺墓验视,原来只是一具空棺材。
马林起初聘了吴家女儿,因为他出去几年没有回来,吴家女儿就嫁了别人。大家都相信十娘的话,等着粉蝶到来。过了一年多也没有音信,才商议另外娶亲。临邑的钱秀才,有个女儿叫荷生,远近都知道她长得漂亮,年已十六岁。还没嫁人,就死了三个未成亲的女婿。马家就托媒人和钱家订了亲,选好日子成亲拜堂。娶到家后,果然非常艳丽漂亮。马林仔细一看,原来是粉蝶!惊奇地问她过去的事,钱女茫然不知。原来粉蝶被赶走的日子。正是钱女降生的时辰。马林每次为她弹奏《天女谪降》,钱女总是手支下巴凝思,好像有所心领神会。