唐贞元年间,前朝崔相国病逝,夫人郑氏带女儿莺莺、侍女红娘和小童欢郎一行30余人,护相国灵柩回河北博陵安葬。中途道路有阻,在河中府普救寺暂住。此时,河南洛阳书生张珙(字君瑞)赴长安赶考,路过河中府看望同窗好友白马将军,顺便游览普救寺时与莺莺相遇,产生了爱慕之情。张生为了追求莺莺,遂不往京师,在寺中借厢住下。
张生的住所与莺莺所住的西厢只一墙之隔。一天晚上,莺莺同红娘在园中烧香祷告,张生隔墙高声吟诗一首:“月色溶溶夜,花荫寂寂春;如何临皓魄,不见月中人?”莺莺立即和诗一首:“兰闺久寂寞,无事度芳春;料得行吟者,应怜长叹人。”经过诗歌唱和,彼此更增添了好感。
在为崔相国做超生道场时,张生、莺莺再次相遇,两人默默地相爱了。就在这时,守桥叛将孙飞虎带兵围住寺院,要抢莺莺为妻,崔夫人四处求救无援,因而许愿:“谁有退兵计策,就把莺莺嫁给谁。”张生挺身而出,写信给白马将军杜确。杜确救兵赶到,孙飞虎兵败被擒。
不料崔夫人言而无信,不肯把女儿嫁给张生,只许二人以兄妹相称。张生因此致病。红娘为张生出谋,让他月下弹琴,莺莺听后十分感动,便叫红娘前去安慰。张生叫红娘给莺莺带去一信,莺莺回信以“待月西厢下,迎风户半开;隔墙花影动,疑是玉人来”约张生相会。当晚,张生赴约,由于红娘在场,莺莺只好假装生气,训斥张生不礼貌,张生从此一病不起。红娘前来探望张生,暗示当夜莺莺一定前来相会,张生病即痊愈。深夜,莺莺来到张生书斋,与张生订了终身。此事被崔夫人觉察,她怒气冲天,拷问红娘,红娘拒理相争,巧妙地说服了崔夫人。崔夫人虽答应将莺莺许配给张生,但又逼迫张生立即上京考试,如考不中,仍不把女儿嫁给他。
张生与莺莺惜别,上京应试,中了头名状元。然而崔夫人侄儿郑恒造摇说,张生已做了卫尚书女婿,逼崔夫人把莺莺嫁给他。就在这时,张生回到普救寺,在白马将军的帮助下,揭穿了郑恒的阴谋,与莺莺喜结连理。