一二零六年,铁木真在斡难河会盟,被尊为成吉思汗,建立蒙古政权,势力日益发展,逐渐成为南宋政权的主要敌人。特别到他的孙子忽必烈的时候,迁都大都,改国号元,全力进攻南宋:一路攻入四川;一路攻人湖北,占领襄樊;一路攻下庐州,进入安徽。
当时南宋执掌政权的是权臣贾似道。贾似道少年无赖,日事饮博,不务正业。当上宰相后,在葛岭建一座半闲堂,终日寻花问柳、选色访艳,无论娼妓女尼,略有三分姿色,便召入宅府中淫污。后宫中的宫妃张淑芳、宫女叶氏,贾似道见了喜欢,居然胁迫两人出宫,充作侍妾。皇帝虽然知道,也不敢问。他又喜欢斗蟋蟀,到了冬季,把许多蟋蟀放在铺了红毡的地方相斗,他与姬妾狎客一起蹲在地上,各出采注,以博胜负。有个狎客带着笑讥讽他:“朝廷令太师平章军国重事,这斗蟋蟀,想必就是军国大事了。”他听了之后,绝不着恼,反对他点头微笑,颇现得色。同时他的跋扈、专权、残忍也是有名的。有一天,他带着心爱的侍姬登楼闲眺,其中一个姬妾,看到两个少年葛巾野服,丰神潇洒,不由赞美:“好美丽的两个少年!”贾似道回过头来说:“你爱他吗?我把你许给他。”这个姬妾笑而不答。下楼后不久,贾似道把所有的姬妾都召来,捧出一个金盒说道:“刚才某姬喜欢两年少年男子,我已替她纳聘,你们看看聘礼吧!说着启开盒盖,露出某姬血淋淋的头来。”有人在他的府门前写诗讽刺他,他立命调查,把那人捕来杀却,当时无人敢提及他的私事。他相继在理宗、度宗两朝专权十五年,初时还到都堂里面小坐,把内外的紧要公事,略略展览。后来竟深居简出,所有军国重事都叫部下送到他家里,交给他的幕僚看,只有弹、纠察、用人财政这些事他就亲自管,就连宋度宗也听他的。所以端人正士,排斥净尽。贪官污吏却一个个弹冠相庆。蒙古人不断进攻,贾似道装病弄傻,一会儿主战,一会儿主和,大宋江山就败在他这样的人手里。
当时礼部尚书程文业的幼子程万里年方十九岁。意气风发,以父荫补国子生,眼看着蒙古大军进逼日急,向朝廷献战守和三策,贾似道最恼的是谈论如何抵抗蒙古大军,最怕的是奏报军情。程万里的直言无隐,戳破了贾似道“讳和为胜”的秘密,使他颜面无光,恼羞成怒。程万里担心大祸就要临头,连夜逃出临安,一路北行,被元将张万户所掳。
蒙古人在征服的过程中,把占领地区的人民视为奴隶,叫做“驱口”,分赐诸王、贵戚、功臣、将士,少则数十数百,多则数千数万。张万户就是指拥有万户奴隶的武将。他也是由汉人而投降蒙古的,他需要培养一批忠心耿耿的人。张万户非常欣赏程万里的才干和胆识。一开始便对他青睐有加,在生活和行动上都加以优待,其中一项就是随程万里在众多俘获的女子中挑一个做妻子。当然这也是为了让程万里心身有所归属,死心踏地为他做事。
这天,张万户将所掳女子中较好的全部集中起来,任程万里挑选。那些女子为使自己摆脱女奴的身份,获得较好的生活条件,都使出混身解数,希望引起程万里的注意,只有一人冷冷地站在那里无动于衷。这女子高挑身材、脸庞红润、媚中有威、柔里带刚,她是死守嘉定的统制自忠的女儿,名叫白玉娘。程万里便选了白玉娘为妻。
白玉娘全家除了她之外,都是在嘉定城中战死的,当日嘉定城里的一切用不着回忆就能出现在她的眼前。城中绝援已久,得不到救兵,许多统兵的大将都是贾似道的亲信,一个个贪生怕死,她父亲战死后,有人收拾他的尸体,发现他身受十创,身中六箭。她继承了父亲坚毅的性格,顽强地活下来。她听说她们这些被掳的女子又要去接受别人挑选的时候,她十分愤怒,但当她见到程万里这个眼里流露出才情与正气的汉族读书人时,她发现这正是她要寻找,曾经是她做小姐的时候所幻想的那种男人。但令她十分不解的是为什么这样一个看来有才情的读书人却甘心地投降了蒙古人。
婚后的第一夜是在一种奇特的感情中度过的,两个人都有些郁郁寡欢。一直到第二天早晨,当别人向程万里祝贺的时候,白玉娘才发现,程万里的脸上挤出了一点点笑容。她似乎有所明白,程万里的心和她有相通的地方,都是痛苦的。但又都各怀着心事,把秘密包裹起来,不向对方展露。
大概是一个月后,白玉娘起得很早,清新的风从窗中吹进,早起的鸟儿在欢快地叫过不停,白玉娘觉得自己格外的清醒。她望着熟睡中仍带些憔悴的丈夫,终于下定了决心。丈夫醒来了,她服侍他穿好衣服,在进早餐的时候,她轻轻地说出这些话来:“我观察了你很久,我总觉得你有很强的才干,又抱有一种不愿被别人知道的情怀。你为什么就甘心做蒙古人的仆隶呢?你为什么不图早日脱却罗网呢?”这些话对程万里来说无异于晴天里响了个霹雳,声震九霄。他可是在逃之身,他暂时还不愿再一次逃跑。因为那边恨他入骨的贾似道还没有死,天下之大,他害怕没有他容身的地方。他担心白玉娘是张万卢安插在自己身边的暗探。她太厉害,她竟然猜中了自己的心思。为了掩盖自己的心事,为了使自己有一个暂时托庇的地方;也为了试探白玉娘真实的身份;程万里把白玉娘所讲的话。一字不漏的告诉了张万户。他等着看张万户是否用蒙古人传统的刑法,把白玉娘全身脱光,用鞭子狠狠地抽打。他看到是白玉娘的镇定自若,毫无怨言。他看到张万户的妻子极力保护白玉娘,他没有看到白玉娘身受蒙古人的传统刑法,他不由得对白玉娘的身份有了更深一层的怀疑。他对白玉娘有了更多的戒心。
又过了一段时间,白玉娘再次劝丈夫逃回南宋,说到激动的时候,热泪把枕巾都湿得透湿。可程万里吃了秤陀铁了心,始终认为白玉娘是有意试探他对张万户的忠心,任凭白玉娘说,就是不开口。第二天,他又原原本本地把白玉娘说的话告诉了张万户。张万户恼羞成怒,对白玉娘恨之入骨,决定把白玉娘卖给他人为奴,要程万里另外娶一个女子为妻。
这时程万里彻底认识了白玉娘那爱国的赤子之心,高贵品质。他请求张万户仍把白玉娘留给自己做妻子,张万户一心想的就是如何巩固自己的势力,对白玉娘又怎肯放过。白玉娘就要被人牵走了,程万里怔怔地看着她,眼里露出悔恨、羞愧、依依不舍的神情。白玉娘除了身上穿的衣服、鞋袜外,孤零零的一人,她把自己的一只绣鞋递给程万里,也要程万里脱一只鞋子给她。她珍重地把程万里的鞋子抱在怀中,对程万里说:“我带着你穿旧的鞋子,就会想到过去我们美好的日子,也会使我在今后觉得总是和你生活在一起。我多么盼望我们今后还会再相见,我把我的绣鞋给你,你能好好地保管它,作为我们今后相见的凭证吗?一日夫妻百日思,百日夫妻海样深。不管我今后的命运如何,我从此不再解衣,虽死也不受强辱,如果命运的安排,我们能再见的话,你会有好消息带给我吗?”
白玉娘走了,程万里当然知道白玉娘所等待的他的好消息是什么,他必须尽心尽力地完成,来满足因自己的造孽而离异的妻子。程万里终于找到个机会逃离了张万户,回到南宋。
这时南宋的政局更加危急,更加混乱,贾似道也无心顾及几年之前一位年轻人的失言,朝廷正是用人之际,程万里的父亲本来就是朝中大臣。不久程万里被委派为福清县尉。宋度宗期间,他一直就在福建境内迁转。恭宗继位后,他担任了闽中安抚使。
这时蒙古人已攻下了襄阳、樊城,南宋失去了在长江中游的屏障,元朝对南宋形成包围,一路沿长江东下,目标直指临安。贾似道率兵十三万迎敌,不战自溃。一二七六年元军攻破临安,掳恭帝北去。端宗在福州即位,三年后为元兵所逼,走死碉州。文天祥又立赵炳为帝,不久文天祥被俘。最后陆秀夫在崖山附近背着幼帝赵炳投海自杀。
南宗灭亡,程万里失去效忠的对象,于是接受元朝廷的安排,担任陕西行省的参知政事。社会局面稍安定,他就开始了寻找白玉娘的活动。
他派出去的人手里拿着他仿制的一批绣鞋,穿街过巷,毫不见白玉娘的踪影。于是来到农村,把绣鞋挑在竹竿上,到处游走,那天一个程万里派出的人路经一处尼庵,口渴乞茶,一中年尼姑捧出茶来,见到竹竿上的绣鞋,惊得把茶碗都掉到地上。连忙返身,不久拿出一只旧的男式鞋子来,那人立即拜倒在地,白玉娘仔细地问了程万里的生活情况。当听到程万里终于做了元朝的官时,她把木鱼重重地敲了一记,念了声阿弥陀佛。她对那人说:“我自被卖以后,忍痛离开丈夫,自缝衣裙,誓不受污,不久就出家为尼。我已在这昙花庵里二十多年,早已绝意尘世,烦请告诉我原来的丈夫程万里,他既已在元朝做官,就也要做个好官。现在我已经见到了当年我留下的绣鞋,就心满意足了,请他不要以我为念,请你把这些话告诉他。”当那人把这些话转告程万里之后,程万里微微有些羞愧,他后来终于辞官不做,过一种隐居生活。他在得到妻子白玉娘在昙花庵出家的消息后,曾特地赶去与她相会。那时白玉娘正坐在蒲团上打坐,他在门缝里静静地看了一会,然后悄悄地离去,他想色即是空,空即是色,见就是不见,不见就是见。
白玉娘觉得尼庵中的生活是充实的,并不象凡俗间那样地空虚。她的赤子之心,她的对程万里的痴情,都已种在这尼庵中。她天天在这里忏悔,那个她一直保存的鞋,成了一种符号,使人感伤,使人望着它生出又畏又敬的心情。