南宋时,南安太守杜宝,只生一女,取名丽娘,年十六岁,尚未许配。杜宝为了使女儿成为知书达理的女中楷模,为她请了位年将六十的老秀才陈最良。因陈讲《诗经·关雎》,惹动了丽娘的情思。伴读的丫头春香,偶而发现了杜府后的花园,并引领丽娘偷偷游了花园。久困闺房的丽娘,在大好春光的感召下,动了伤春之情。丽娘回房后,忽做一梦。梦见一书生手拿柳枝要她题诗,后被那书生抱到牡丹亭畔,共成云雨之欢。丽娘醒来后,恹恹思睡,第二天又去花园,寻找梦境。失望之下,相思成病,形容日渐消瘦下去。一日照镜子,见自己一下瘦成那个样子,忙叫春香拿来丹青、素绢,自画春容,并题诗一首于上。她又把梦境说与春香,并让春香把那画叫裱画匠裱好。杜宝夫妇听说女儿病重,忙叫陈最良用药,让石道姑来念经。但都不见效。中秋之夜,丽娘夭逝。死前,嘱咐春香把春容装在紫檀木匣里,藏于花园太湖山石下;又嘱母亲把她葬在花园牡丹亭边的梅树之下。这时,投降了金国的贼王李全,领兵围淮、扬,朝廷升杜宝为淮、扬安抚史,立即动身。杜宝只得匆匆埋葬了女儿,并造了一座梅花庵观供奉丽娘神位,又嘱托石道姑和陈最良照料。杜宝到了扬州不久,李全即派兵包围了淮安。杜宝原计划带夫人、春香前往淮安,但因军事危急,半路上杜宝让夫人和春香乘船回到了临安。广州府秀才柳梦梅,原名柳春卿,因梦见一花园中有一女子立在梅树下,说她与他有姻缘,才改名柳梦梅。柳梦梅去临安考试,得到了进宝大臣苗舜宾援助。走到南安时,柳病宿梅花庵。柳病渐好时,偶游花园,恰在太湖石边拾到丽娘的春容匣子,回到书房,把那春容挂在床头前,夜夜烧香拜祝。丽娘在阴间里一呆三年,阎王发付鬼魂时,查得丽娘阳寿未尽,令其自己回家。丽娘鬼魂游到梅花观里,恰遇柳生正对着自己的真容拜求。丽娘大受感动,与柳生欢会,自称是西邻之女。他们两人的夜夜说笑声,惊动了石道姑。一天夜里,两人正说笑,被突然来的石道姑冲散。第二天夜里,丽娘只得向柳生说出真情,并求柳生三天之间挖坟开棺。柳生只好把实情告诉了石道姑,并求她帮助。第二天,他们挖坟开棺,使丽娘还魂。柳梦梅与杜丽娘怕事情被发觉,当夜雇船,与石道姑一起去了临安。后陈最良发现丽娘坟被盗,并不见了柳生和石道姑,怀疑他俩合谋而为,忙去扬州告诉杜安抚。陈最良还没到淮安,就被叛军抓住,李全听说陈是杜宝的家塾老师,又得知杜宝还有夫人和婢女春香,就听从了妻子的计策,谎说已杀了杜夫人和春香,然后放了陈最良。陈到淮安见了杜,即把小姐坟被盗、老夫人和春香被杀的事禀知杜宝,杜宝听后大恸。后杜忍痛修书两封,让陈送给李全和李的妻子,封官许钱,招降了李全,淮安转危为安。丽娘他们到临安,在钱塘江边住下,等柳生知道考试时,考试时间已过,多亏了主考官是苗舜宾,才得以补考。这时,因淮、扬兵事,朝廷延期放榜。丽娘让柳生先去扬州看望她父母。柳生走后不久,来临安的老夫人和春香因天晚找宿处与丽娘、石道姑相遇。柳生到了扬州,听说杜在淮安,又去淮安见杜宝,杜宝以为女儿已死,何以有女婿?便拟定柳生假冒之罪,令人拿下押往临安候审。杜宝回到临安,因军功升为宰相,陈最良为黄门奏事官。这时发榜,柳中了状元,可到处找柳而不得。原来柳正被杜宝吊打,因为在柳身上搜出了丽娘的春容,杜宝认定柳是盗墓贼。苗舜宾听说后,赶到杜府,救下了柳生。陈最良来到,说小姐确实复活了,柳生就是女婿。杜认为是鬼妖之事,要奏明皇上,灭除此事。陈即奏告皇上,皇上要宰相、小姐、柳生、老夫人都前来作证。金銮殿里,众人齐到,皇上用镜子照看有无影子,断定丽娘确是活人。杜宝硬说丽娘、老夫人都是鬼魂变的,后经皇上裁决让他们父女、夫妻相认。丽娘又劝柳生拜认了岳父杜宝,全家大团圆。
该剧目有《六十种曲》本和人民文学出版社1963年排印的徐朔方校注本。