程婴是晋臣赵朔的门客。赵朔素与权臣屠岸贾不和,屠岸贾欲除之而后快。时逢梁山无故崩塌,景公让太史占卜吉凶。屠岸贾买通太史,说是国君赏罚不明所致。屠岸贾借机说昔日赵盾杀死灵公,理应严惩。现在赵盾已死,应该处置他的后人。这个是天意,不可违抗。于是景公让屠岸贾捕杀赵氏一族。
大将韩厥知道了这件事,连夜告诉赵朔,让他逃走。赵朔不肯。赵朔的妻子是景公的姑母,已有身孕。赵朔找来程婴,让他把夫人送到宫中避难,保住这个骨血。倘若生下男儿,将来也好报仇雪恨。
很快,屠岸贾领人抄杀赵氏一族,只杀得尸横堂屋,血流台阶。
听说赵氏有难,另一个门客公孙杵臼来见程婴,约程婴一起去救赵氏,虽死无悔。程婴告诉杵臼:夫人有孕,倘若生男,就辅佐他,以图后举;如果生女,再一起赴死,绝无二话。
后来,夫人生下一男孩,取名赵武。屠岸贾带人搜宫,夫人藏赵武于裙下,躲过一劫。有人说,婴儿已经被送出宫外了,于是屠岸贾悬千金缉拿,又在宫门外设卡,搜查进出人员。
程婴与杵臼商量如何瞒天过海,把赵武接出宫外。杵臼想了一会儿说:“立孤与死难,哪一个更难?”
程婴回答:“死很容易,立孤很难。”
杵臼:“你做难做的事,我做容易的事,怎么样?”
程婴看着杵臼,“你有什么计策?”
“我们找一个婴儿,冒充赵武,我带着藏进首阳山。你去告发我们,屠贼必定来捕杀我们。这样他就以为赵武已死,而真赵武就能幸存下来了。”
程婴想了片刻,说:“我有一个新出生的儿子,可以冒充赵武,但是你有藏匿之罪,必被杀死。你先我而死,我于心不忍。”说完,泪流不止。
杵臼生气地说道:“这是大事,也是美事,有什么可哭的?”程婴这才收住悲声。
程婴抱来婴儿,交给杵臼。马上去见韩厥,把与杵臼商定的事情告诉韩厥。
程婴跑到屠岸贾那里告发。屠岸贾立即带人到首阳山,抓住了杵臼和婴儿。杵臼大骂程婴。程婴强忍悲伤,假装羞愧,催促屠岸贾赶快动手。屠岸贾命人杀死杵臼,并亲手摔死了婴儿。见此惨状,程婴悲痛不已,但不能表现出来。
屠岸贾带人去首阳山时,韩厥已经设法偷出了赵武。
屠岸贾拿来千金赏赐程婴。程婴坚辞不受,见屠岸贾疑惑,就解释说自己害怕全家受牵连,才做了不义之事,没有脸面领赏。如果一定要赏,请允许自己用这些钱收葬赵氏一族,也算尽了旧主情谊了。屠岸贾同意了程婴的请求。
程婴收葬完赵氏,辞了屠岸贾,带着赵武躲进了盂山。
转眼十几年过去了。一日,景公梦见赵氏祖先向其索命,就病倒了。此时,韩厥已被重用,趁机进言,言说赵氏之冤。景公这才醒悟,捕杀屠岸贾,复迎程婴和赵武,拜赵武为司寇。
景公钦佩程婴忠义,想要委以官职。程婴慨然说道:“原先我没有死,是因为赵武需要抚养。现在赵氏之仇已经报了,我的任务已经完成了。我怎么能够贪图荣华,而让杵臼独死?”说罢,自刎而死。
赵武抱住程婴的尸体大哭。众人也皆流泪。
想程婴忍辱偷生十几年,不是贪生怕死,也不是贪恋荣华富贵,而是为了忠义。后人感念他和公孙杵臼的忠义,在藏孤之地立庙祭祀,以赵武谥号命名为“文子祠”。