洛阳人常大用,癖爱牡丹。听说曹州牡丹胜过齐鲁,很想去看看。后来因正好有事到曹州去,就租住在缙绅园中。当时正是二月,牡丹尚未开花,常大用只好在园中徘徊,注视着花芽,盼望花蕊早绽,并写下百多首《怀牡丹》绝句。不久牡丹含苞欲放,常大用却盘缠快要用完,便典当随身的衣物,留恋牡丹,不愿回家。
一天清晨,常大用去花园,见到一个姑娘和一个老妇人在园里,他怀疑是富贵人家眷属,就忙转回。晚上去时又见到她们,便悄悄躲开。并暗地打量那姑娘:宫中装束,艳丽多姿。常神醉心迷,突然转念一想:这肯定不是凡人,人间难得有这样的佳丽!他快步走过假山,正好碰上老妇人。那姑娘正坐在石头上,看到常大用吃了一惊。老妇人用身子挡住姑娘,呵斥说:“疯小子想干什么!”常生跪下说:“姑娘一定是仙人!”老妇人啐他说:“如此胡说八道,真该把你绑送衙门!”常生十分害怕。那姑娘微笑着说:“去吧!”常生绕过假山走了。
常生回来,再不去游园,心想姑娘回家告诉他父兄,一定会来辱骂他。躺在空空的书斋,很后悔自己鲁莽;暗地庆幸姑娘没有发怒,或许不会追究。后悔和恐惧交加,一夜未眠,以致生了病。第二天到了辰时,高兴的是没有人来问罪,心情逐渐平静。回想姑娘的音容笑貌,由害怕变为相思。一连三天,憔悴得要死。点着蜡烛坐到半夜,仆人已经睡熟了。那老妇人进来,端着一只杯子给他说:“我家葛巾姑娘,亲手调和了鸩汤,你快喝下去!”常生吃惊地说:“我和姑娘无怨无仇,何至于要赐我死呢?既然是姑娘亲手调和的,与其相思得病,还不如喝下药死掉!”于是仰头一喝而光。老妇人笑着接过杯子走了。常生觉得药气又香又冷,好像不是有毒的。过一会儿竟觉得心胸宽舒,头脑清爽,香甜地睡过去了。醒过来已是阳光满窗,试着起床,病全好了,心里更相信那姑娘是仙人。只恨没有机会再见面,只在无人之时,虔诚地默默祈祷她。
一天大用外出,忽然在密林深处遇见姑娘一人,十分高兴,向她跪拜。姑娘走近拖他起来,常生就用手握着姑娘玉腕起身,她皮肤细腻,奇香满身,使常生觉得浑身酥软。正要说话,老妇人忽然出现。姑娘叫常生躲到石头后面,悄声说:“晚上用花梯过墙来,四面有红窗户的就是我住的地方。”说完匆匆去了。常生魂魄飘荡,身不由己。到晚上搬梯子爬上院墙,墙那边已有梯子,高兴地爬下去,果然有红窗房子,听见房子里面有下棋声音,久久站立不敢唐突向前,就翻墙返回。过一会儿再翻过去,下棋声仍频繁。走近一看,是那姑娘和另一个白衣美人对弈,老妇人也在,一个丫鬟在旁边侍候,常生又返回。总共往返三次,已打三更。常生伏在梯子上,听到老妇人出来说:“谁放在这里的梯子?”叫丫鬟一同把梯子搬走。常登上墙,想下去没有阶梯,忧郁地返回住处。
第二晚又去,梯子已放在那里了。幸好寂静没有人,进入姑娘房中,姑娘正独坐沉思,见到他惊得站起来,羞怯地斜着身子。常生作揖说:“自认为福分薄,恐怕和天仙没有缘分。哪想到有今天!”接着就亲昵地拥抱着姑娘,她纤细的腰肢似乎只有一捧,呼出的气息像兰花馥香。姑娘推开他说:“为什么这么急!”常生说:“好事多磨,迟了担心又被拆散。”话没说完,远远听见有人说话。姑娘慌忙说:“玉版妹子来了!你暂且躲到床下吧。”常生忙钻入床下。一个姑娘进来,笑着说:“打败仗的将领,还敢再答应一战吗?茶已煮好,我愿邀请你快乐地度过长夜。”姑娘借口疲乏相推辞,玉版坚持要请她去,姑娘坐着执意不走。玉版说:“这么留恋不舍,难道房子里藏有男子?”强拉着她出门去了。常生从床底出来,遗憾极了,在姑娘床上翻了一遍。见床头有个水晶如意,上面系着紫巾,洁净芳香可爱。常生把如意藏在怀中,越墙返回。整整衣服,姑娘身上的香气还在,更加倾慕。但是因为曾躲在床下受惊吓,担心受到惩罚,不敢再去,把如意珍藏起来,希望她来寻找。
隔了一晚,姑娘果然来了。笑着说:“我向来认为你是个君子,不知道你是一个小贼。”常生说:“对的。我之所以偶尔不做君子,是希望爱情如意。”于是把姑娘揽入怀中。解开她的衣衫,一股温暖的香气便四处喷散。拥抱之间,感觉到了呼吸之间,都有一股芳香。常生说:“我本来就认为你是仙人,如今更加知道不是胡说。幸而得到你的青睐,真是三生有幸。只是担心你像仙女杜兰香,终究变成离恨。”姑娘笑着说:“你太多虑了。我不过像离魂的倩女,偶尔动情罢了。这件事一定要谨慎保密,担心爱拨弄是非的人蜚短流长,你不能长出翅膀,我也不能乘风,那么惨遭祸害比离别更苦。”常生欣然同意,但终究认为她是仙人,一定要打听她的姓氏。姑娘说:“既然认为我是仙人,仙人何必要姓名传世。”常生又问:“那老太太是谁?”姑娘说:“她是桑姥姥。我小时受她庇护,所以对她不能当仆妇看待。”说完就起身要走,并说:“我那边人多嘴杂,不能久留,我找空子一定会再来。”临走索回如意,说:“这不是我的东西,是玉版丢下的。”常生问:“玉版是谁?”回答:“我堂妹。”拿起如意便走了。
姑娘走后,被子、枕头都染上了奇异的香味。从此以后两三夜就来一次。常生被她迷住,不再想回家,可是钱袋空荡,想把马卖掉,姑娘知道后,说:“你因为我花光了钱,典当了衣服,我已不忍心。现在又要卖掉马,千多里路将怎么回去?我有点私房钱,可以帮助买点行装。”常生推辞说:“感谢你的好意,扪心自问,不能报答你,又要贪鄙花费你的钱,我还算人吗?”姑娘一定要他接受,说:“姑且借给你。”她把常生拖到一棵桑树下,指着一块石头说:“翻动它!”常生搬开石头。姑娘又从头上拔下簪子,在土里钻了几十下,说:“把土扒开。”常生又照办了,现出一个坛口。姑娘把手伸进去,拿出近五十两白银。常生按住她的手让她别掏了,姑娘不听,又掏出几十锭。常生勉强分了一半,然后把钱掩埋起来。
一天晚上,姑娘对常生说:“近几天有些风声,不能长此下去,我们要做好准备。”常生吃惊地说:“怎么办?我为人本来迂腐,如今为了你,竟然像寡妇失了贞洁,再也控制不住自己了。只要你一句话,即使刀砍斧削我在所不惜!”姑娘提议一同逃走,让常生先回家,相约在洛阳会面。常生立即整理行装,心想先回家再来迎接她。
等到了家,姑娘的车正好也到了他家门口。进屋拜见家里人,周围邻居也惊喜地表示庆贺,并不知道他们是偷偷逃回来的。常生暗暗感到惶恐,姑娘倒很坦然。对常生说:“不要说千里以外发觉不了,就是发觉了,我是世代官宦人家的女儿,我父亲也无法对付你这个女婿。”
常大用弟弟大器,年十七岁,姑娘说:“你弟弟聪明有根基,比你更有前途。”弟弟快要结婚,妻子忽然早逝。姑娘说:“我堂妹玉版,你已经见过她,相貌不错,年龄相当,如果他们结婚称得上一对美满夫妻。”常生请姑娘作媒,姑娘说:“这没有什么困难。”常生问:“有什么办法?”姑娘说:“妹妹和我最要好,两匹马套一辆轻车,派个老婆婆去就接回来了。”常生担心私奔的事情被发现,不敢听从她的主意。姑娘说:“不要紧的。”立即派桑老婆婆驾车去了。几天后到了曹州,快到村口,让驾车的人停在路上等候,桑老婆婆乘夜进村。很长时间才和玉版一起出来,上车就出发。晚上就睡在车上,五更就赶路。姑娘计算了日期,要大器穿上礼服去迎接,走了五十几里地才遇见,一起驾车回家,敲锣打鼓,拜堂成亲。常生兄弟都娶了漂亮的老婆,家里也越来越富有。
一天,有几十个骑马的强盗突然闯入常家。常生发现出事,叫全家人都躲上楼。强盗进来包围了这座楼。常生俯身问:“有什么仇冤?”强盗答:“没有仇冤。但是有两个要求:一个是听说你们兄弟俩的媳妇非常漂亮,请让我们见一下;另一个是我们五十八人,每人要五百两银子。”他们在楼下堆满柴草,用纵火烧楼来要挟常生。常生答应给他们钱,强盗不满意,威胁烧楼,全家人十分惊慌。姑娘要和玉版下楼去,劝阻不听,盛装走下阶梯,站在离地三级处,凛然说:“我们姊妹都是仙女,暂时住在人间,怎么会怕强盗!我想赐给你们万两银子,恐怕你们不敢要啊!”强盗们惊为天仙,一齐叩头拜见,连声回答:“不敢。”姊妹俩正要上楼去,一个强盗说:“这是骗我们的!”姑娘听了转身站立,说:“你想怎么样?就早点下手吧!还不算晚呀。”强盗相互看着,不敢说一句话。姊妹俩从容地上楼去了。强盗们仰望她俩消逝,才哄然离开。
过两年,姊妹俩各生下一个儿子,姑娘才说:“我姓魏,母亲被封为曹国夫人。”常生怀疑曹州没有姓魏的官宦人家,况且大户人家丢了女儿,怎么会不闻不问?不敢追根寻底,心中暗暗觉得奇怪。便借故又到曹州,到各处询问,没有姓魏的。因此又借住在以前那家。忽然见到墙壁上有赠给曹国夫人的诗,觉得很惊讶,就问主人。主人笑了笑,就请常生去看看曹国夫人。到那里一看,原来是一株牡丹,有房檐那么高。常生问名字的来历,原来这株花是曹州第一,所以朋友们开玩笑给它取了这么个雅名。常生问它是哪个品种,主人回答:“葛巾紫。”常生更加惊讶,怀疑妻子是牡丹花妖。回来后又不敢质问,只讲述赠送曹国夫人的诗来观察她。姑娘突然变了脸色,马上喊玉版抱着儿子出来,对常生说:“三年前,被你的深情感动,于是显身报答。如今被猜疑,为什么还要在一起生活!”接着就和玉版把儿子举起丢得远远的,儿子跌到地下都消失了。常生惊讶地一看,两个女人都不见了,悔恨不止。几天后,儿子跌落的地方长出两株牡丹,一个晚上便长得一尺见方,当年就开了花,一株紫色,一株白色,每朵花有盘子那般大,和平常的葛巾、玉版相比,花瓣更加细碎艳丽。几年后,繁茂成丛;分别移栽到别的地方,又变出别的奇特的品种,没有人能叫出名字。从此,洛阳牡丹甲天下,闻名中州。