故事发生在三峡工程建设时期。作为老实内向的大龄单身青年,三峡岸边某个航道信号工麦强似乎对女人提不起兴趣,朋友热心将猎物送到他嘴边,他尝也不尝,但是别人不知的是,一个朝他微笑的女人常常会入他的梦。三峡边区另一处的某个旅馆里,服务员陈青因丈夫的过世,独自带着孩子过着无盼头的日子。两人偶然相遇后,麦强发现陈青就是他的梦中人,只不过在她脸上不见梦中的笑容。
麦强不由自主地喜欢上了陈青,不料因此令他陷入一场麻烦,连带陈青也成了周围人口中的是非对象。在陈青的生活眼看要陷入更无期盼的境地时,麦强决定勇敢地承担起责任。。约翰·布雷斯(尼古拉斯·凯奇 Nicolas Cage 饰)被正义天使拉萨罗斯附体,但天使暴躁乖戾,遇到坏人就要吸取他们的灵魂。
莫罗(伊德瑞斯·艾尔巴 Idris Elba 饰)请求布雷斯把小孩丹尼带来神殿以避免恶魔夺取他的灵魂,作为回报他将驱除布雷斯身上的诅咒。丹尼是魔鬼罗尔科的儿子,罗尔科为了把自己的魔力植入儿子体内正派卡里跟追踪逃跑途中的母子两人。正当母子俩被困在采石场的时候,布雷斯到来,他体内的天使爆发了出来,压制住了卡里根。他变成了恶灵骑士,毫不手软的把对手撕成碎片。当战争结束时,三人前往神殿,同时,罗尔科也救醒了死亡边缘的卡里根,并赋予他更可怕的摧毁力,让他再去把丹尼找回来。
在神殿里,莫罗履行协议把布雷斯体内的扎萨罗斯驱赶了出来。但正当他做法时,神殿的牧师试图杀死丹尼——他认为丹尼就是恶魔。还没等他们行动,卡里根就到了。把丹尼带去见了罗尔科。罗尔科逼迫丹尼参与一个仪式,想使他变成一个彻头彻尾的恶魔。
布雷斯试图阻止这个仪式,说服丹尼弃恶从善。在最后一战中,为了打败恶魔,丹尼用了他的力量把扎萨罗斯再次植入布雷斯体内。这次扎萨罗斯变成了正义的化身,打败了恶魔。。沿着虚线离开,把男孩放进购物车里;沿着购物指示线离开,把女孩放进梦里。沿着云朵离开,把诗放进大卖场广播里;沿着海浪离开,把歌放进眼睛里。
从诗人孙梓评未完成的诗作《购物车男孩》离开,到达《沿着虚线离开》的电影彼岸。诗句里逃逸的影像、影像里会合的诗句,有如双胞胎拥抱着诞生,然后,再一起沿着青春的睫毛离开……。