故事发生在三十年代的上海,顾维邦是一位名不见经传的小导演,一次偶然中,他遇见了名为孟思凡的女明星,两人一拍即合,决定拍摄一部爱情惊悚电影,顾维邦为其取名为《夜半歌声》。一切都进行得很顺利,演员们纷纷入驻剧组,等待开拍。顾维邦将拍摄地点选在了丽宫电影院,虽然很多人告诫他这里曾经发生过耸人听闻的灵异事件,不宜久留,但固执的顾维邦毫不在意。果不其然,没过多久,剧组里就接连发生了许多怪事,直到扮演男主角的演员离奇死亡,众人才发现事情已经如此严重。顾维邦的未婚妻费丽斯来到剧组想要调查事件的真相,却牵扯出了一段顾维邦和孟思凡之间的尘封旧事。。立仁(刘德华 饰)自小便父母双亡,在泰国的孤儿院长大。长大后,立仁进入了泰国空军。此时,他仍耿耿于怀当年父母的死亡。原来,在立仁9岁的时候,他的父母带着他携带一批重要资料和物品来到泰国,岂料父亲的结拜兄弟见利忘义,将他的父母杀害了。一天,立仁糊里糊涂的和仇人的情妇Mona(关之琳 饰)发生了关系,由此受到了杀手的追杀。无奈之下立仁逃到了美国寻求CIA的帮助。在美国,立仁无意中又救了仇人的女儿Chrystal(吴倩莲 饰),两人堕入了爱河。爱情、亲仇交织在一起,立仁该何去何从?。