約翰·布雷斯(尼古拉斯·凱奇 Nicolas Cage 飾)被正義天使拉薩羅斯附體,但天使暴躁乖戾,遇到壞人就要吸取他們的靈魂。
莫羅(伊德瑞斯·艾爾巴 Idris Elba 飾)請求布雷斯把小孩丹尼帶來神殿以避免惡魔奪取他的靈魂,作為回報他將驅除布雷斯身上的詛咒。丹尼是魔鬼羅爾科的兒子,羅爾科為了把自己的魔力植入兒子體內正派卡里跟追蹤逃跑途中的母子兩人。正當母子倆被困在採石場的時候,布雷斯到來,他體內的天使爆發了出來,壓制住了卡里根。他變成了惡靈騎士,毫不手軟的把對手撕成碎片。當戰爭結束時,三人前往神殿,同時,羅爾科也救醒了死亡邊緣的卡里根,並賦予他更可怕的摧毀力,讓他再去把丹尼找回來。
在神殿里,莫羅履行協議把布雷斯體內的扎薩羅斯驅趕了出來。但正當他做法時,神殿的牧師試圖殺死丹尼——他認為丹尼就是惡魔。還沒等他們行動,卡里根就到了。把丹尼帶去見了羅爾科。羅爾科逼迫丹尼參與一個儀式,想使他變成一個徹頭徹尾的惡魔。
布雷斯試圖阻止這個儀式,說服丹尼棄惡從善。在最後一戰中,為了打敗惡魔,丹尼用了他的力量把扎薩羅斯再次植入布雷斯體內。這次扎薩羅斯變成了正義的化身,打敗了惡魔。