路初八(陈奕迅饰)是戏班里的小配角,平日里总是在台上怯场,让师傅们头疼不已。然而,最近几天他却突然变得异常出色,唱腔动人,表演精彩,仿佛得到了某种神助。他很快发现自己身上发生了变化的原因——他被一个鬼魂附身了。这个鬼魂名叫紫云飞(容祖儿饰),是上世纪三十年代的一名反串文武生。紫云飞生前深深爱慕二少爷(谢霆锋饰),为了赢得他的青睐而改演旦角。然而,二少爷并未如约前来观戏,就在紫云飞失望之际,舞台上的灯台意外坠落,将她半边脸削去,导致她香消玉殒。由于未能实现与二少爷相会的心愿,紫云飞的魂魄无法完全投胎,只将一半投在了路初八身上,另一半则在等待机会完成遗愿。路初八得知自己与紫云飞的前世渊源后,被她对爱的执着所打动,决定帮助紫云飞实现未竟的心愿。