《尧山堂外纪》:宋朝末年,彭城有个程万里,他是尚书程文业的儿子,十九岁那年,因受父亲恩荫,被录为国子监的生员。时值元军大举南侵,朝野上下为之惊恐,程万里向皇帝上书,奏献战、守、和三策。因直陈己见,触怒了当朝宰相,宰相便想找机会治他的罪。程万里闻听风声便逃出临安,直奔江陵。还未到汉口,就被元军的大将张万户抓获了。张万户赏识他的才干,便把他带到兴元,还将俘虏来作婢女的一个汉族女子许配给他。元军的统制官对他说:“这是宋军一位将领的女儿,名叫玉娘,将领镇守嘉定,城破后一家人全都死了,仅留下这一个女儿。”
成婚之夜,万里和玉娘各自述说流离漂泊的经历,同病相怜,感情极为融洽。
婚后三天,玉娘从张府出来,见万里泪痕满面,知道他又在怀念故乡,便劝他道:“看您的才能品学,绝不是久居人下的,为什么不早点想办法逃离这罗网呢,而甘心被人奴役?”
万里没有答话,怀疑是张万户派她来试探,他认为妇人远没有这种见识。第二天,他便把玉娘的话告诉了张万户,万户大怒,欲惩罚玉娘,后经妻子劝解,才作罢。但玉娘对丈夫的行为毫无怨色,万里就更加怀疑。当日晚上,玉娘又用头一天说的话劝说万里,言辞更为恳切。万里仍以为是张万户以她为诱饵,因此,天亮时,又把玉娘的话告诉了张万户。万户就把玉娘卖给他人作妾,答应给程万里另娶一位。万里自此才明白他辜负了玉娘的忠告,但后悔已来不及了。玉娘临走的时候,留给丈夫一只绣花鞋,而拿走了丈夫的一只旧鞋,来作为他日重逢时的信物。
从此之后,张万户把万里看作心腹,什么事都跟他商量,对他一点不加防范。张的信任给程万里创造了逃跑的机会,他终于找了个空子偷了匹好马日夜兼程逃回了南方。到了临安,正值度宗刚刚即位,优先录用先朝大臣的后代,程万里便上书说明了情况,便被任命为福清县县尉,后来他一直升到闽中安抚使的职位。
南宋亡国后,程万里率领全城守军投降了元朝,元朝廷提升他为陕西行省参知政事。万里当初被羁留所在的兴元县属陕西行省管辖,玉娘就是在那里被卖给人家做妾的。万里上任后,便秘密派家仆去寻访玉娘的下落。
且说玉娘被卖后,便把自己的衣服裤子全都用线缝合起来,死也不让主人污辱她。这样过了好久,主人也没办法。后来玉娘便乞求主人让她出家当尼姑,主人见她已无回心转意的可能,就放她去了,玉娘就来到昙花庵修行。程万里派来寻找的人经过多方查寻,找到了昙花庵。到了昙花庵,他便拿出当初玉娘送给万里的绣花鞋摆弄,庵里有个尼姑正在念经,见了绣花鞋大吃一惊,忙问家仆这鞋怎么到了他的手中,家仆便把这鞋的来历说了一遍:尼姑一听,忙走进卧室拿出一只旧鞋来。
家仆一看,正是主人对他描述的那只鞋,于是认定这就是玉娘。
遂跪在地上,向玉娘转达主人的意思,准备接玉娘到陕西任所。
谁知玉娘听后却摇了摇头说:“这两只鞋既然已经复合,我的愿望也就实现了。我出家已经二十多年了,对尘世间的一切早已不感兴趣,请你回去转告你家主人,好好做官,不要再惦念着我。”
家仆说:“我家主人心里一直想着您的情义,发誓除您之外,绝不再另娶,请夫人不要推辞。”
玉娘没等他把话说完,便回屋去了。家仆又请一位老尼姑再三帮助劝说,但玉娘始终不肯出来。家仆无奈,只好拿着那两只鞋回去向万里交差。
万里见玉娘不肯回到他身边,便以陕西行省的名义发出公函,命令兴元府的官吏以礼迎玉娘出庵,然后送到他的任所。
于是,这对分别二十多年的夫妻又破镜重圆了。此时,两人都四十多岁了。玉娘因为自己年纪已大,不能生育,便为丈夫买了几个妾姬,使万里有了两个儿子。