山东胶县人黄生为考取功名便借住在山东峻山下清宫。这座道观十分庞大,种满了形形色色的牡丹,品种繁多,举不胜枚,有一天,黄生正在窗口读书,忽然看见窗外牡花丛中有一白衣少女在花丛中时隐时现。黄生暗想:“这道观难道有女子居住?我住了这么久,怎么没有发现呢?黄生当下便急步追出门外去观看那白衣女子。终是迟了一步,那女子早隐身而去。黄生不甘心,便藏身在树后,静候白衣女子重新现身。没过多久,那白衣女子携手带来了一个红衣女子。黄生暗喜,那两个女子渐渐向他靠近。突然,红衣女子说:“这里有生人!”黄生赶忙走了出来。那两个女子转身拂袖而去。裙袖飘拂,香气洋溢。黄生正要追赶,那两个女子早已不见了踪影。黄生非常惆怅,怔怔地站在那里,一言不发。黄生还写诗留情。
黄生回到书房正思念不止,白衣女郎忽然进来,黄生惊喜地上前迎接。女郎笑着说:“你气势汹汹像个强盗,使人害怕。想不到你却是个风雅的诗人,所以不妨和你相见。”黄生略微问了她的生平。女郎说:“我小名香玉,原住在妓院里,被下清宫的道士关禁在这山中,实在非我所愿。”黄生问:“那道士叫什么名字?我要为你出这口气。”香玉说:“不必了,他也不敢相逼。借此机会和风流诗人长期幽会,也很不错。”黄生问:“穿红衣服的是谁?”女即说:“她叫绛雪,是我的义姐。”于是二人就亲热起来,等到醒来,东方已红。香玉急忙起床说:“只管贪欢,都忘了天亮了。”一边穿衣套鞋,一边说:“我也写了一首诗,可别见笑:良宵欢乐容易过,不觉朝阳已上窗。但愿人如粱上燕,同飞同栖自成双。”黄生握着她的手腕说:“你外表秀美,内心聪明,我很爱你。只是你离开我一天,就像千里永别一样。你别等到夜里,一有机会就来。”香玉答应了。从此二人早晚都在一起。
黄生每次让她邀请绛雪来,总不来,黄生以为遗憾。香玉说:“绛雪姐姐性格特别孤僻,不像我这么痴情。只能慢慢劝她,不必太急。”
一晚,香玉神色凄惨地进来,说:“你连陇都守不住了,还想望蜀啊?如今我们要永别了。”黄生问:“你去哪里?”香玉用袖子擦着眼泪说:“这是命运往定的,不好对你说。你当初题的那首佳作,现在成了不幸的预言了。豪门已夺佳人去,更无侠士救无双。宋朝王晋卿的诗句,可说是为我而作的了。”黄生问她怎么回事,她不说,只是哭泣。彻夜未眠,一早就去了。黄生感到非常奇怪。
第二天,有个即墨县姓蓝的,来下清宫游览,见到一株白牡丹,很喜欢,就把它掘起带走了。黄生这才明白香玉乃是牡丹花精,怅恨惋惜不止。过了几天,听说白牡丹被姓蓝的移植到家里,只一天就枯萎死了。黄生恨极,写了五十首《哭花诗》天天来到香玉留下的坑穴旁哭泣哀悼。
一天,黄生哀悼完刚要回去,远远着见红衣女郎绛雪也来到坑穴边哭泣,就从容地走近去,她也不躲避。黄生就拉着绛雪的袖子,执手相看泪眼。后来,黄生恳请她到自己房中,绛雪也依了他。她叹息说:“从小的姐妹,今天却再也见不到她了。听到你哀伤,更添我悲痛。泪水堕人九泉之下,或许她能为我们的真诚所感动而重生。但是她死后神离气散,一时间怎能和我们两人一起谈笑呢?黄生说:“我命不好,妨害恋人,当然也没福消受两个美人。以前我多次烦请香玉转达一点儿心意,为什么你再不肯光临呢?”绛雪说:“我以为年轻书生,十个有九个薄情,不知道你原是最重感情的人。但我和你交往,为感情而不为性欲。若是日夜纵欢,那我就做不到了。”说完,就要告别。黄生说:“香玉永久离开了我,使我吃不下睡不着。仰仗你多留一会儿,安慰我的情思,为何说走就走呢!”绛雪这才留下,过了一宿离去,好几天没再来。
冷雨敲着幽窗,黄生苦苦怀念着香玉,在床上翻来侧去,泪水沾湿了枕席。他披上衣服起来,拨亮了灯火,又按前诗的韵写了一首:“凄凉山院黄昏雨,垂帘惆怅坐小窗。无限相思人不见,半夜独自泪双双。”写完了正在自己吟诵,忽然窗外有人说:“既有作诗的,不可没有和诗的。”听上去,是绛雪的声音,忙开门让她进来。绛雪看了黄生的诗,就在后面续写道:“亲密人儿在何处?惟有孤灯照晚窗。寂寞空山人一个,幻前对影自成双。”黄生读了流下眼泪,就埋怨绛雪来得太少了。绛雪说:“像香玉那样热烈我做不到,只能稍微安慰一下你的寂寞罢了。”黄生要和她纵欢,绛雪说:“相见的快乐,何必在这上面。”
从此,每当黄生寂寞无聊时,绛雪就来一次。来了以后就和黄生饮酒吟诗,有时不留宿就走了,黄生也由着她。他对绛雪说:“香玉是我的爱妻,你是我的良友。”他常常问绛雪:“你是院中第几棵?请早点告诉我,我将抱回去种在家里,免得像香玉似地被恶人夺去,使人遗恨一辈子。”绛雪说:“故土难移,告诉了你也没有用。爱妻尚且不能始终伴着你,何况良友呢!”黄生不听她的,拉着她的手臂出来,每到一棵牡丹下面,就问:“这棵是你吗?”绛雪不说,只是捂着嘴笑。
不久已到腊月,黄生回家祭祖过年。到二月间,忽然梦见绛雪到,忧愁地说:“我有大难临头,你赶紧去,还能相见,迟了就来不及了。”黄生醒后觉得奇怪,急忙命仆人备马,连夜赶到峻山。原来是观里的道士要建造房屋,有一棵耐冬树,妨碍了房屋的建造,工匠正要挥斧把它砍掉。黄生急忙制止了他们。
到夜里,绛雪来向黄生道谢,黄生笑着说:“你早不把实情告诉我,该遭这次困厄!现在我已暮知道你了,如果你再不肯来,我就烧了它气你。”绛雪说:“我早知道你要这样来纠缠,所以过去才不敢告诉你。”二人坐了一阵,黄生说:“我现在面对良友,更想念美丽的妻子。好久没去哭香玉了,你能跟我一起去哭吗?”于是两个人就前去,对着坑穴洒泪。哭了一个多时辰,绛雪收住眼泪劝黄生不要再哭了。
又过了几夜,黄生正寂寞地坐着,绛雪笑着进来说:“报告你一个喜讯:花神被你的深情所感动,让香玉重新降生到这下清宫中。”黄生问:“什么时候?”绛雪答:“不知道,大约不久吧!”天亮绛雪下床而去,黄生叮嘱道:“我是为你来的,你别老是让人孤单寂寞。”绛雪笑着答应了,却两夜没来。黄生前去抱着那棵耐冬树,摇晃抚摸,连声呼唤,没有声音。于是黄生就回到房中,拿着艾条去抽打那棵耐冬树。绛雪突然进来,夺过艾条扔掉,说:“你恶作剧,假使我身上的出伤疤,就要和你断绝关系了!”黄生笑着把她抱在怀里。
二人还没坐定,香玉轻盈地进来了。黄生一见香玉,泪水纵横,急忙起来握住她的手,香玉用另一只手握着绛雪,三人相对伤心地硬咽着。等到坐下,黄生握着香玉的手觉得空虚,好像自己握着拳头一样,惊讶地问她。香玉流着泪说:“从前我是花的神,所以是凝实的,如今我是花的鬼,所以是虚散的。如今我们虽然相聚,你别当做是真的,只把它当做梦来看就是了。”绛雪说:“妹妹来得太好了,我被你家男人纠缠死了。”就告辞走了。香玉举止笑貌和以前一样,只是偎依之间,好像一个虚幻的影子。黄生郁郁不乐,香玉也低头抬头觉得遗憾。她对黄生说:“你用白蔹屑,稍微拌点硫磺,每天浇我一杯水,明年今天就能报答你的恩情。”就告别走了。
第二天,黄生到白牡丹原先生长的地方,就见一株牡丹苗生出来了。黄生就天天加以培植,又制作了雕花栏杆来保护它。香玉来,对黄生感激不尽。黄生想要把牡丹苗移植到自己家里,香玉不同意,说:“我体质虚弱,不堪再受损伤。况且万物生长各有注定的地方,我这次来原本不打算生在你家,违抗命运反而要缩短寿命。只要你爱我,欢会的日子自会来到。”黄生埋怨绛雪不来。香玉说:“你一定要强求她来,我有办法。”就和黄生带了灯笼来到耐冬树下,拿了一根草,用巴掌量了它的尺寸,再用它来量树身,自下而上,量到四尺六寸,就指着这地方,让黄生用两个手指甲一齐搔它。转眼绛雪就从背后出来,笑着骂道:“这丫头来了,就助纣为虐吗?”两个人拉着绛雪一起进屋,香玉说:“姐姐别生气,暂时麻烦你陪伴他,一年后就不打扰你了。”从此绛雪也就常来。
黄生观察那牡丹芽,一天比一天壮盛,到春末,已有二尺多高了。黄生回家后,付给道士银两,嘱咐他朝夕培植灌溉牡丹。第二年四月黄生到下清宫,就见有花一朵,含苞末放。黄生正依恋不忍离去,花摇摇晃晃要开放,不一会已经开了。花大如盘,清楚地看到有个小美人坐在花蕊中,才三四指高。转眼间,美人飘然飞下,原来是香玉。香玉笑着对黄生说:“我忍受着风吹雨打等你来,你来得好迟!”于是就进了屋。绛雪也来了,笑着说:“现在夫妻团圆,你们可幸福了。”于是三人一起饮酒谈笑。到半夜,绛雪走了。二人同睡。完全像以前一样融洽。
后来黄生的妻子死了,黄生就进山,不再回家。这时,牡丹已有手臂般粗。黄生常常指着它说;“我将来死后,灵魂就寄托在这里,要生在你左边。”香玉、绛雪都笑着说:“你别忘了。”
十几年后,黄生忽然病了。他儿子赶来,对着父亲很悲哀。黄生笑着说:“这是我新生之日,不是死亡之时,你伤心什么。”对道士说:“将来牡丹下面有红色的芽萌生,一放五叶的,就是我。”于是不再说话。儿子用车把他运回家,黄生就死了。
第二年,牡丹下果然有株茁壮的芽荫开出,叶数和黄生所说一样。道士觉得奇怪,更精心浇灌它。三年后,高好几尺,有一围来粗,但不开花。老道士死后,他的徒弟不懂得爱惜,把它砍掉了。白牡丹也就憔悴而死,不久,耐冬也死了。