科学家们发现,宇宙中的两颗彗星正在急速向地球逼近,不出意外的话,它们终将撞上地球,给地球带来无法估量的损失。为了避免造成世界级的恐慌,政府封锁了这一消息,偷偷在格陵兰岛建造了非常坚固的堡垒,只有躲进堡垒的人们才能够获得一线生机,而进入堡垒的条件非常的苛刻。杰夫(杰拉德·巴特勒GerardButler饰)是一名建筑工程师,他得到了进入堡垒的机会,于是决定带着妻子艾莉森(莫瑞娜·巴卡琳MorenaBaccarin饰)和儿子内森(罗杰·戴尔·弗洛伊德RogerDaleFloyd饰)一起前往格陵兰岛。哪知道旅途进行到一半,察觉到了事件真相的军方开始了暴乱行动。结构工程师约翰·加里蒂 (John Garrity ) 与分居的妻子艾莉森 (Allison) 和患糖尿病的儿子内森 (Nathan)住在佐治亚州亚特兰大。他回到家中,与家人和邻居一起观看最近发现的一颗名为“克拉克”的 星际彗星从近地掠过。在杂货店时,约翰收到国土安全部的自动消息,称他和他的家人已被选为紧急避难所。然后他回到家,恰逢电视直播中看到彗星碎片进入大气层。此前预计碎片会降落在百慕大附近的海洋中,但碎片却击中了佛罗里达州坦帕市,使该市以及该州大部分地区蒸发。随后约翰接到电话,指示他前往罗宾斯空军基地进行疏散飞行,因为克拉克正与地球直接相撞,整个地球将在接下来的两天内遭受数百个碎片的轰炸,发生灾难性事件,其中一个碎片的大小足以导致灭绝级别的事件。约翰、艾莉森和内森收拾行李逃跑,无法携带其他人,因为他们会被拒绝登机。在罗宾斯空军基地,内森的胰岛素被留在车里。当约翰去取回它时,艾莉森在发现内森的健康状况后被护送离开基地,从而取消了他的资格。约翰回来并登上了飞机,但在意识到艾莉森和内森被抛在后面后很快就跳下了飞机。当约翰离开基地时,一群惊慌失措的暴徒闯入,枪声点燃了喷气燃料,摧毁了几架疏散飞机。回到车上,约翰发现了艾莉森的纸条,上面写着她和内森要去她父亲位于肯塔基州列克星敦的家。从一家被抢劫的商店获得医疗用品后,艾莉森和内森搭上了一对名叫拉尔夫和朱迪·文托的夫妇的车,结果拉尔夫绑架了内森,以便利用他和腕带登机。很快,艾莉森试图寻求帮助,但每个人都太忙了,从她身边经过,现在绝望的艾莉森开始哭泣。约翰搭上一辆卡车,一位名叫科林的年轻人说,卡车开往加拿大安大略省奥斯古德, 那里有私人飞机飞往格陵兰岛,那里显然是疏散地点。然而,另一名男子试图夺走约翰的腕带,导致卡车相撞并杀死了科林,约翰被迫出于自卫杀死了该男子。在另一个机场,文托一家试图冒充内森的父母,但当士兵们发现内森不是他们的父母时被捕。不久之后,艾利森和内森在附近的联邦应急管理局营地重聚。第二天早上,约翰得知数百万人在全球撞击中丧生,最大的碎片将在大约 24 小时内撞击。约翰偷了一辆车,到达了他岳父戴尔的家,内森和艾莉森不久后也到达了。一家人了解到格陵兰岛皮图菲克太空基地附近的一个地下掩体建筑群,撤离人员被送往那里。一家人只有足够的时间到达奥斯古德,所以约翰和艾莉森决定离开,而戴尔选择留在后面并在撞击中丧生,同时把他的卡车交给了他们。到达纽约州北部时,一家人遇到了交通堵塞。当一阵熔化的碎片如雨点般落下时,他们在地下通道下避难,然后继续前往加拿大。在稳步前往奥斯古德的过程中,一家人通过无线电得知克拉克最大的碎片(宽 9 英里(14 公里))将击中西欧并摧毁它。一家人抵达奥斯古德机场,勉强赶上当晚最后一趟航班。当他们到达格陵兰岛时,一颗彗星碎片撞击了海岸,冲击波导致飞机迫降,飞行员丧生。加里蒂夫妇和其他乘客拦下一辆军用卡车,进入掩体综合体,此时最大的碎片进入大气层并撞击,毁灭了文明。九个月后,地堡试图与其他潜在幸存者进行无线电联系,因为包括悉尼、芝加哥、巴黎和墨西哥城在内的多个城市都已完全沦为废墟。加里蒂一家和其他居住者离开避难所,眼前的景色发生了根本性的变化,格陵兰岛与全球其他车站取得了联系。所有人都松了口气,听到彼此的报告,气氛终于晴朗,幸存者有机会重建。