路初八(陈奕迅饰)是戏班的小配角,平日一上场就怯场,令戏班师傅头痛不已。然而,这几天他却奇迹般地唱得异常动人,表演出色,仿佛有神助。最终,他发现了惊悚的原因——有鬼上了身。这鬼是三十年代反串文武生的女子紫云飞(容祖儿饰)。紫云飞当年苦恋二少爷(谢霆锋饰),为了他出演旦角,等待他前来观戏。然而,二少爷未到,紫云飞在舞台上发生意外,堕下的灯台削掉她的半边脸,她当场香消玉殒。未了的心愿使她无法完全投胎,于是只投了一半的胎在路初八身上,另一半仍在等待机会实现当年心愿。路初八得知紫云飞即自己的前世,被她对爱的执著所感动,决定帮助她实现遗愿。