《天上飘着五个字》美国海军医药官员杰克富勒奉命到一艘俄罗斯潜艇作善意访问但是当他和他的同伴李特斯旺到潜艇之后他们遭遇了一群恐怖分子他们企图占领这艘潜艇并以核武器威胁杰克他们……究竟杰克他们能否战胜恐怖分子呢数百年前长有三头的阿修罗王(梁家辉饰欲望之头、刘嘉玲饰谋略之头)决定发起毁灭天界之战改变以善恶来决定生命轮转的自然法则阿修罗王战败失去洞察之头(吴磊饰)被打入炼狱界百年后阿修罗王欲再次发起攻天大战但若要打开天界之门他必须要找到洞察之头并与之合体方能成功约翰·布雷斯(尼古拉斯·凯奇 Nicolas Cage 饰)被正义天使拉萨罗斯附体但天使暴躁乖戾遇到坏人就要吸取他们的灵魂莫罗(伊德瑞斯·艾尔巴 Idris Elba 饰)请求布雷斯把小孩丹尼带来神殿以避免恶魔夺取他的灵魂作为回报他将驱除布雷斯身上的诅咒丹尼是魔鬼罗尔科的儿子罗尔科为了把自己的魔力植入儿子体内正派卡里跟追踪逃跑途中的母子两人正当母子俩被困在采石场的时候布雷斯到来他体内的天使爆发了出来压制住了卡里根他变成了恶灵骑士毫不手软的把对手撕成碎片当战争结束时三人前往神殿同时罗尔科也救醒了死亡边缘的卡里根并赋予他更可怕的摧毁力让他再去把丹尼找回来在神殿里莫罗履行协议把布雷斯体内的扎萨罗斯驱赶了出来但正当他做法时神殿的牧师试图杀死丹尼——他认为丹尼就是恶魔还没等他们行动卡里根就到了把丹尼带去见了罗尔科罗尔科逼迫丹尼参与一个仪式想使他变成一个彻头彻尾的恶魔布雷斯试图阻止这个仪式说服丹尼弃恶从善在最后一战中为了打败恶魔丹尼用了他的力量把扎萨罗斯再次植入布雷斯体内这次扎萨罗斯变成了正义的化身打败了恶魔...