書生馬萬寶,是東昌人,為人狂放不羈;妻子田氏,也是放誕風流,夫妻二人感情敦厚。
一天,有個女子來到村中,寄居在馬生鄰居一個寡老太太家裡,自己說是受不了公婆虐待,暫時跑出來躲避。女子縫紉手藝非常精巧,常為老太太做些針線活,老太太很高興,便長留住了她。過了幾天,女子又自稱能在深夜給人按摩,專治女人腹部疾病。老太太常到馬生家串門,一次向田氏宣揚女子的醫術,田氏也沒在意。又一天,馬生從牆縫中窺見女子,年齡約十八九歲,模樣很標緻,心裡不覺喜歡上了她。暗地裡和妻子商量,讓妻子裝病把女子誘來。田氏便假裝生起病來。老太太先過來問候,說:「蒙娘子招呼,她馬上就過來;但她怕見男人,到時請不要讓你丈夫進來。」田氏說:「家裡房子不多,他還得出出進進,可怎麼辦呢?」裝著沉思了一會,說:「晚上西村阿舅家叫他去喝酒,就讓他別回來了。這也是容易的事。」老太太答應著走了。田氏便和馬生商量好,用以人換人之計來算計這個女子。
天黑後,老太太領著女子來了,問:「郎君晚上回來嗎?」田氏答道:「不回來了!」女子高興地說:「這樣才好。」說了幾句話,老太太走了,田氏便點起蠟燭,展開被子,讓女子先上床,自己也脫了衣服,滅了燈。忽然說:「差點忘了,廚房的門沒關上,可別叫狗偷吃了東西。」下床開門出去,換成馬生。馬生躡手躡腳地進來,上床與女子一個枕頭躺下。女子顫聲說:「我要為娘子治病了!」又說些親暱的話,馬生不語。女子就用手撫摸馬生的肚子,漸漸地到了肚臍下,停住手不動,忽然探摸下處,一聲驚叫,女子驚訝恐怖的樣子,不亞於抓住了毒蛇或蠍子,翻身下床,就想逃走。馬生一把捉住,把手伸進女子的兩腿間,一抓一把,原來也是男子!馬生大駭,急忙喊叫點燈。田氏以為女子不同意,兩人鬧翻了,點上燈過來想給二人調停調停,進門一看,只見一個男子跪在地上哀求饒命,又羞又怕,忙跑了出去。馬生細細究問,他自稱是谷城人王二喜,因為哥哥王大喜是桑沖的弟子,所以學到了男扮女裝的方法。馬生又問:「玷污了多少人?」王二喜答道:「剛出道不久,才十六個人。」馬生覺得王二喜的罪惡,應該誅殺,想告到郡府;但又愛憐他生的美貌,不忍心他死,便將他反綁起來閹割了。王二喜鮮血湧流,昏厥過去,一頓飯的功夫才甦醒過來。馬生又將他扶到床上,蓋上被子,囑咐說:「我用藥給你治傷,傷好後,必須跟我一輩子;否則,我就告到官府,讓你去死!」王二喜唯唯連聲。
第二天,老太太又來看望,馬生騙她說:「她是我的表侄女王二姐。因為是石女,被丈夫家趕出了家門。昨夜跟我說明緣由,我才知道。夜晚她忽然身子不適,我才要去給她買藥治病,還要到她丈夫家要求留下她來與我妻子作伴。」老太太聽說,進屋探望王二喜,見面色如土,便詢問病情。王回答說:「陰處忽然腫脹,可能是生瘡。」老太太信以為真,走了。馬生便為王二喜療傷,一天天好起來。夜裡二人經常鬼混,早上起來,王二喜就替田氏提水做飯,灑掃庭院,縫補衣服,儼然是個奴婢。住了不長時間桑沖便事敗被殺,同黨六十七人一併被凌遲處死。只有王二喜漏網,官府傳令各地嚴行緝拿。村裡人都懷疑王二喜,便召集村中老太太們,讓她們隔著衣裳探摸王二喜的下處,證實是「女子」,大家才打消了疑慮。王二喜很感激馬生,後來果真跟了他一輩子,死後,就葬在馬氏墓的一側,墳墓至今隱約還在。