1930年代,上海。神偷包德大名鼎鼎,疾恶如仇,他收养了一批无家可归的孤儿。一日,包德用窃来的伪钞到赌场赚取大把美钞,朱督察发觉后命巡捕辑拿包德。法庭上,大律师夏炳运为包德作无罪辩护,包德得以当庭释放。后夏炳运出任赈灾委员会主席,妄图独吞赈灾款200万元,并栽赃包德,不明就里的法庭判处包德50年徒刑。夏的同伙李三趁机骗走包所收养的孤儿,训练他们做小偷。包德幸而被夏的女儿嘉惠相帮逃出牢笼,他救出被骗的孤儿,同时也获取了夏炳运的罪证。夏炳运夫妇荒乱中将赃物扔进了粥锅,包德见状,心生一计......。一天深夜,晚归的周太太(梁思敏 饰)在无意之中目睹了一场可怕的凶杀案。周太太的丈夫老周(周文健 饰)是一名警探,恰巧负责调查此案件,然而,妻子的目击证词却让老周百思不得其解,因为周太太所看到的凶手,实际上在五十年前就应该已经死了,这一切究竟是怎么回事呢?
老周那个聪慧机灵做事从来不按常理出牌的搭档孔明(刘青云 饰)从非洲归来,亦加入了按键的调查。通过分析重重的线索,孔明发现,周太太当日并没有看错,杀人者的确就是那个早就应该死去的人。原来,凶手心中心心念念的爱着他曾经的恋人敏敏,为了能够再次见到敏敏,凶手的心入了魔,这五十年间竟然不老不死,样貌没有一丝改变。。