莱州有一个秀才,叫彭好古,在一座别墅里读书,离家很远。中秋节也没回家,一个人冷冷清清。想到村里的人没有能说话的,只有一个姓丘的书生,是本县的名士,但他平素又有些见不得人的恶行,彭好古非常鄙视他,不愿和他交往。圆月升上天空,彭好古更加感到无聊,迫不得已,只得写了封请柬让仆人去请丘生。

过了不久,丘生来了,二人赏月饮酒。忽听有叩门声,童仆答应着出去开了大门,见是一个陌生的书生,要拜见主人。彭好古离席将客人请进来,互相一揖,然后围着桌子坐下。彭好古便询问起客人的家乡住处。客人说:“我是广陵人,与你同姓,字海秋。值此佳节良宵,我一个人闷在旅店里太冷清,听说您高雅健谈,所以不请自来了!”看他虽是布衣,却很整洁,谈笑风雅。彭好古大喜,说:“是我的同宗人!今晚什么日子,遇上这样的佳客!”请客人喝酒,二人融洽得就和老朋友一样。看彭海秋的意思,似乎十分鄙视丘生;丘生每次巴结地和他攀谈,他都傲慢地不大答理。彭好古替丘生感到羞惭,便打断他的话头,说自己要先唱支民谣劝酒,接着唱起了李白的《扶风豪士之曲》。唱完,主客一同大笑起来。彭海秋说:“我不懂音律,不能回报你的阳春白雪之曲,找一个代替的可以吗?”彭好古说:“悉听尊便。”彭海秋问:“莱州城有名妓没有?”彭好古回答说:“没有。”彭海秋听说,默默地坐了很久,忽然跟童仆说:“我刚才叫来了一个人,现在门外,你去领她进来!”童仆出门,果然发现一个女子正在门外徘徊,便把她领进屋来。见那女子有十五六岁年纪,穿着柳黄色帔风,散发出阵阵香气,美丽得跟天仙一样。彭好古非常惊骇,拉她坐下。彭海秋慰问她说:“麻烦你千里跋涉而来!”女子含着笑连连答应。彭好古心中惊疑,询问她是从哪来的。彭海秋说:“贵地苦于没有佳人,我刚才从西湖里的船上叫了她来。”又对女子说:“你刚才在船上唱的《薄幸郎曲》就很好,请你再唱一遍。”女子便唱道:“薄幸郎,牵马洗春沼。人声远,马声杳,江天高,山月小。掉头去不归,庭中生白晓。不怨别离多,但愁欢会少。眠何处?勿作随风絮。便是不封侯,莫向临邛去!”彭海秋从袜子中掏出一支玉笛,伴着女子的歌声悠扬动听地吹起来,歌唱完了,笛声也停止了。彭好古惊叹不已。说:“西湖到这里,何止一千里路,片刻之间能叫她到这里,莫非是神仙吗?”彭海秋说:“不敢称仙。只是在我眼里,万里远的路不过就像这庭院一般。今晚西湖的风月比平时更美,不可不去游览游览。能跟我一起去吗?”彭好古有心要看看他的奇异本领,便答应道:“太有幸了!”彭海秋又问:“愿意乘船还是骑马?”彭好古想:还是坐船安逸,回答说:“愿乘船。”彭海秋说:“在这里叫船太远,天河中应该有摆渡的!”便高高地扬起一只手,向空中招呼道:“船来,船来!我们要去西湖,不吝惜船钱!”不一会儿,只见一只彩船,从空中飘飘落下,船四周缠绕着团团烟云,

几个人一起登上去。见船上一人手持短桨,桨尾密密地排列着长长的鸟翎,形状像羽毛扇,摇起桨,只觉清风习习。彩船渐渐上升,直入云霄,然后又往南飞去,快得跟离弦的箭一样。

过了一刻工夫,觉得彩船落到水中。只听船外笙歌管弦,一片嘈杂。出船舱一望,见明亮的月光荡漾在烟波缭绕的水面上,数不清的游船正游来荡去。船家停下船桨,任彩船自由行驶。彭好古仔细一看,果然是西湖。这时彭海秋去船舱后取出些美酒佳肴,大家欢快地对喝起来。不一会儿,有只楼船渐渐驶近,依傍着彩船并行。彭好古隔着楼船的窗子往里一看,里面有两三个人正在笑闹着下围棋。彭海秋举起一杯酒对女子说:“用这杯酒为你送行。”女子喝酒的时候,彭好古对她恋恋不舍,惟恐她立即走了,暗暗地踢了踢她的脚。女子秋波一转,脉脉送情。彭好古更加动心,请求约定再见之期。女子说:“如你喜爱我,只要打听娟娘的名字,没有不知道的!”彭海秋把彭好古的绫巾送给女子,说:“我为你们代订三年后相会之约。”随即起身,把女子托在手掌里,说道:“仙人啊仙人!”伸手扳住邻船的窗户,把女子从窗格里塞了进去。窗格有只盘那样大小,女子伏身像蛇一样钻了进去,一点也不觉狭窄。一会儿便听邻船有人道:“娟娘醒过来了!”楼船渐渐荡了开去。

彭好古远远地见那只楼船已经停泊,船上的人纷纷下船走了,游兴顿时没有了。便和彭海秋说想上岸游览游览,刚商量着,船已靠了岸。于是大家弃船登岸。彭好古独自一人在前,漫步走了约一里多路,彭海秋从后面赶上来,手里牵着匹马,让彭好古骑上;自己又转回去,说:“等我再借两匹马来。”过了很久,也没回来。这时,路上的行人越来越少了。仰头一看,斜月西转,天色将明。丘生也不知去了哪里。彭好古牵着马,徘徊路边,不知如何办好。又骑马回到原来停船的地方,只见人和船都不见了。想到腰包里没带钱,彭好古更加忧愁惊慌。天大明后,他见马背上有个小口袋,伸手一掏,摸出三四两白银。用它买了点吃的,等着彭海秋和丘生回来,不知不觉已到了中午。他想,不如先去拜访娟娘,也可以慢慢访查丘生的消息,可等他打听娟娘的名字,并没有一个知道的。彭好古兴致索然,第二天只得骑马往回赶来。幸亏马比较温顺,性不烈,半个月才回了家。

起初,彭好古三人乘船上天时,他的童仆忙跑回家说:“主人已成仙升天了!”全家人都悲哀地哭起来,以为他不会回来了。彭好古返回家,把马拴好走进院子里,家里人见了,都惊喜地询问他。彭好古详细讲了奇异的经历。又想到自已一人返回老家来,恐怕丘家听说后会来追问丘生的下落,便告诫家里人不要声张。后来,彭好古说起马的由来,大家因为马是仙人送的,都好奇地到马厩里观看。到了马厩,马已没有踪影,只有丘生被用缰绳拴在马槽上!众人极为惊骇,叫出彭好古来看。见丘生垂着头站在那里,面如死灰,问他也不答话,只是两只眼一张一闭而已。彭好古很不忍心,把他解开扶到床上。丘生就像丧失了魂魄,彭好古给他灌些汤水,他稍稍能咽下去。到半夜,丘生多少清醒过来,急急忙忙地跑到厕所里,屙下来几个马粪蛋,又吃了点东西,才能开口说话。彭好古在床头细问究竟。丘生说:“我们下船后,彭海秋引着我边走边谈。等走到一处没人的地方,他开玩笑般地拍了拍我的脖颈,我只觉迷迷糊糊的,一下子跌倒在地。趴在地上稍定了定神,再看看自己,已经变成马,心里也明白,但是不能说话。这真是奇耻大辱,实在不能让妻子儿女知道,请求你不要泄露这事!”彭好古答应了,命仆人用马驮着送他回了家。

彭好古自回家后,一直思念着娟娘。又过了三年,他的姐夫在扬州做官,他便去探望。扬州有个姓梁的公子,跟彭家素有来往,设宴邀请彭好古。酒席上有几个歌女,都过来拜见梁公子。梁公子问娟娘怎么没来,回答说病了。公子发怒地说:“这奴婢自以为声价高,用条绳子去把她捆来!”彭好古听到娟娘的名字,惊疑地问是谁。公子回答说:“是个妓女,才貌广陵数第一。因为有点名气,所以敢傲慢无礼。”彭好古怀疑是偶然重名,但触动了心事,又着急地想见见她。

一会儿,娟娘来了,梁公子盛气凌人地斥责了她一顿。彭好古仔细打量了一下,果然是中秋节见过的那个娟娘。便对梁公子说:“她跟我有旧交,请你宽恕她。”娟娘看了看彭好古,显出惊愕的样子。梁公子来不及深问彭好古,便命娟娘斟酒。彭好古问她:“《薄幸郎曲》还记得吗?”娟娘更加惊骇,凝神注视了他一会,才开始唱起那支旧曲。听她的声音,跟当年中秋节时唱的一模一样。酒宴结束,梁公子命娟娘陪客人入寝。彭好古握着她的手说:“三年之约,今天才实现了吗?”娟娘说:“那天我跟人游西湖,喝了几杯酒,忽然像醉了一样,朦朦胧胧地只觉被一个人带到一个村子里。一个小童领我进入一家,席上有三个客人,你是其中的一个。后来乘船来到西湖,又把我从窗口送了回去,你拉着我的手恋恋不舍。我以为那都是幻梦,但绫巾真在,我至今还珍藏眷。”彭好古也讲了那件事的经过,两个人相互惊叹感慨了一会儿。娟娘扑到彭好古的怀里,哽咽着说:“仙人已给我们作了媒人,您不要以为我是个风尘女子,可以舍弃,就不再想念我这个苦海中的人!”彭好古说:“船中订下的约会,我一天也没忘。倘若你有意,我就是倾囊出资,再卖了这匹马,只要能把你赎出来,我也在所不惜!”

第二天一早,彭好古把这意思告诉了梁公子,又从姐夫那里借了一千两银子,削去了娟娘的乐籍,把她带回了老家。娟娘有次偶然到那座别墅去,还记得当年喝酒的地方。