春秋时期,赵氏家族在晋国朝廷里历代为官,由于他们为政清廉,深受人民拥戴。
晋灵公时,赵盾作了宰相,他常劝说残暴不仁的灵公要好好治理国家,不要滥杀无辜,这引起了灵公的不满,在奸臣屠岸贾的唆使下,他多次派人去谋害赵盾。为了逃避灵公的暗算,赵盾打算到别的国家去。但还没走出国境,他的堂兄赵穿已经把灵公杀死了。赵盾得到这个消息,立即赶回都城立成公为国君,继续担任宰相之职,主持国政。成公非常器重赵盾,还把自己的姐姐嫁给赵盾的儿子赵朔。
晋景公即位后,赵盾去世。奸臣屠岸贾得到景公的重用。他对赵氏家族深怀不满,就借口当年灵公被赵穿所杀,赵盾是罪魁祸首,要景公同赵家算总账。大将韩厥说:“灵公遇害时,赵盾并不在场。成公在世时也认为他没罪,所以没有治他的罪。现在要杀赵盾的后代,简直是作乱啊!”但屠岸贾根本不听这一套,也不等景公同意,就把赵氏满门全部杀掉了。只有赵朔的妻子,怀着身孕,偷偷躲进王宫里才逃过了这场屠杀。
过了不久,赵朔的妻子生了个男孩,起名叫武。屠岸贾听到风声后,连这个刚出世的婴儿也不放过,派人进宫搜查。赵朔的妻子急中生智,把婴儿藏在她的裤子里,外面又罩上又肥又大的裙子,才躲过了搜查。
赵朔的门客程婴和公孙杵臼知道了这件事后,为了保护赵家的最后一点骨血,他们定下了一条苦肉计。
程婴抱来自己的孩子,交给公孙臼藏到深山里。然后他到屠岸贾那里去“告发”。屠岸贾非常高兴,带人跟着程婴进山,把公孙杵臼和婴儿都杀害了。屠岸贾以为赵氏孤儿已死,便不再追究了,程婴得以与真正的赵氏孤儿隐藏在深山中。
15年后,赵氏孤儿长大成人。正巧,这时景公生病,他命人算卦看是什么原因。算卦的人说是有功于晋朝而被杀害的人在作怪。景公问韩厥是不是有这么回事。韩厥知道赵氏孤儿还在。就说:“有功于晋国而被绝后的,只有赵氏一家。”景公又问赵家是否还有子孙存在。韩厥便把程婴藏孤救孤的实情,讲给景公。景公于是把赵氏孤儿赵武立为赵氏继承人,恢复了赵家的地位和权利。
随后,赵武会同众文武大臣发兵围攻屠岸贾,铲除了这个奸臣。
程婴和公孙杵臼冒死历险、慷慨赴死的侠义精神,得到了历代人们的推崇:“赵氏孤儿”的故事,被写成文学作品,改编成京剧和多种地方戏,在民间广泛流传。此外,它还在很早就流传到国外,得到了很高的评价。