骊姬之乱,晋献公的长子申生被害,公子重耳奔蒲。公子夷吾奔屈,后逃到梁国避难。
晋惠公在梁国时,梁伯为其娶妻。妻子怀孕,已经过了预产期,胎儿尚未出生。惠公心中焦急,请卜者(算命先生)招父父子占卜。招父的儿子掐指一算:“公子将有一男一女。”招父点头,说:“是的。不过,男的日后为他人劳役(当人质);女的将为他人之妾。”因此,男孩取名叫圉,女孩取名叫妾。
鲁僖公十五年(公元前645年),秦晋两国在韩原开战,惠公战败,晋惠公当了秦国的俘虏。多亏晋惠公的姐姐是秦穆公夫人穆姬,她身穿丧服哭泣不止,不停劝谏。秦穆公就和晋侯在王城结盟,并允许他返回晋国。不得已,鲁僖公十七年(公元前643年)的夏天,将儿子圉送到秦国为人质。当时,圉的年纪大约十一二岁。 秦穆公将公族之女嫁给圉,此女名叫怀嬴。嬴为秦国公族之姓,怀从圉后来的谥号。
梁伯喜好大兴土木、修筑城池沟堑,百姓疲惫不堪怨声载道,多次互相惊吓道“秦军来了”,百姓过分恐惧。前641年,秦国灭亡了梁国。
圉在秦国做人质5年,前638年,晋惠公生病了。太子圉说:“我母亲家在梁国,今天梁被秦国灭亡,我在国外被秦轻视,在国内又无援助。我的父亲病重卧床不起,我担心晋国大夫看不起我,请改立其他公子为太子。”于是太子圉与妻子怀嬴商量一起逃回去。怀嬴说:“您是一国的太子,在此受辱。秦国让我服侍您,为的是稳住您的心。您逃跑吧,我不拖累你,也不敢声张出去。”太子圉就一个人跑回晋国。
鲁僖公二十三年(公元前637年)九月,晋惠公夷吾病死,他的儿子圉于都城绛即位,是为晋怀公。
与此同时,公子重耳经过长期流亡,也为秦穆公招纳而至。志在春秋霸主的秦穆公,曾经说过”来等待有才能的人“治理晋国,他不相信晋惠公和儿子晋怀公的治国能力。他意在帮助重耳回国夺权,以此建立秦晋同盟关系。
怀公畏惧重耳回国夺权。怀公即位后,命令臣民不准跟随逃亡在外的人。并规定了期限,不回来的不赦免。狐突的儿子狐毛和狐偃都跟随重耳在秦国,狐突不肯召他们回国。怀公抓住狐突,说:“儿子回来就赦免。”狐突回答说:“当儿子能够做官,父亲教他懂得忠诚的道理,这是古代的制度。名字写在简策上,给主子送了进见的礼物,如果三心二意就是罪过。现在下臣的儿子,名字在重耳那里已经有年头了,如果又召他回来,这是教他三心二意。父亲教儿子三心二意,用什么来事奉国君?刑罚的不滥用,这是君主的贤明,下臣的愿望。滥用刑罚以图快意,谁能没有罪?下臣知道您的意思了。”
狐突已经看出怀公的地位岌岌可危,说了一番大道理。怀公年轻气盛,一怒之下杀了狐突。 狐突之死,将晋国公卿彻底推向了重耳一方。卜偃称疾不出,认为怀公不贤明,反而杀人为快。
之前,晋侯返回晋国后,杀了庆郑,重新修整政务。与大臣们商议说:“重耳在外,诸侯大多认为他有利而接待他。”晋惠公想派人到狄杀死重耳。重耳听到风声,跑到齐国去了。
鲁僖公二十四年(公元前636年)正月,重耳在秦兵三千人的护送下,回到阔别二十年的晋国,怀公的心腹吕省和郤芮都临阵倒戈,怀公被迫逃到高梁。重耳入国都绛,即位。怀公很快被即位为文公的重耳派人杀死。死时只有十八、九岁。