流落在楚州的秀才窦天章,因欠当地蔡婆婆连本加利四十两银子无力偿还,只得将自己七岁的独生女儿卖给蔡婆婆做童养媳。此后,窦天章得了蔡婆婆十两银子作路费,自己赴京赶考去了。

十三年后,蔡婆婆迁居山阳县。窦娥与蔡婆婆的儿子结婚后,没过多久蔡婆婆的儿子就死了,窦娥只能和蔡婆婆相依为命。

一天,蔡婆婆向赛卢医讨债,赛卢医把蔡婆婆骗到郊外,企图勒死她。恰巧被流氓无赖张驴儿和他的父亲遇见了,两人遂将蔡婆婆救下。

张氏父子得知蔡婆婆家里只有婆媳两人,且都是寡妇,就强迫她们婆媳嫁给他们父子。蔡婆婆无奈,把张驴儿父子带到家中。张驴儿死赖着不走,逼迫窦娥与他成婚,窦娥坚决不从。

一次,张驴儿趁蔡婆婆生病,向赛卢医讨来毒药,暗中放在窦娥为蔡婆婆做的羊肚儿汤中,想毒死蔡婆婆,逼窦娥允婚。不料蔡婆婆那日呕吐没胃口,便把汤让给了张驴儿的父亲,张父因此一命呜呼。张驴儿反咬一口,诬陷窦娥杀人,借机逼婚。张驴儿逼婚不成,一气之下便将窦娥告到官府。

楚州太守桃杌(56)是个贪官污吏,根本不听窦娥的申诉,要用重刑拷打。窦娥怕年老的婆婆受不住拷打,就一人承担了罪名,被判处死刑。

窦娥被押上了刑场,她有冤难诉,气得指天骂地,并且连发下三桩誓愿:一要被斩后鲜血飞上白练,半滴不落尘埃;二要六月降雪,掩埋尸骸;三要楚州三年大旱,以示惩罚。结果,这三桩誓愿在窦娥死后都实现了,由此也证明了窦娥的冤屈。

窦娥死后的第三年,寻找女儿多年的窦天章以提刑肃政廉访使的职务来到楚州视察刑狱,审理案卷、检查贪官污吏。这时,窦娥的冤魂出现,向父亲痛诉冤情。窦天章这才将张驴儿、赛卢医、桃杌等人捉拿归案,使奸人受惩,窦娥的冤案得以平反昭雪。