王琦瑶(郑秀文 饰)与同学蒋丽莉(苏岩 饰)到片场参观,认识了摄影师程先生(梁家辉 饰)。程先生为琦瑶拍照并倾心于她,后来更推荐琦瑶参加“上海小姐“的选举。王琦瑶的风姿不仅使她赢得了第三名,还令掌握军政大权的李主任(胡军 饰)义无反顾的爱上了她。王琦瑶也全身心投入,可是李主任遭到了追杀后便销声匿迹了,王琦瑶倍感伤痛。期间她最好的朋友蒋丽莉也离开上海了。富家子康明逊(吴彦祖 饰)的出现使琦瑶的生活起来波澜,琦瑶更怀上了他的孩子,由于上海局势不定康明逊必须离开,王琦瑶只好用钱买来一段婚姻以换取给予孩子的名分。
1930年代,乡村少年唐水生来到上海投靠六叔(李雪健),在他的引荐下,做了歌舞皇后小金宝(巩俐)的贴身佣人。小金宝是上海滩一霸唐老爷(李保田)的女人,但与其手下宋二爷有染,而宋二爷已经觊觎唐老爷的位子良久。 六叔的猝死使唐老爷心生警觉,带着小金宝、水生等人来到一个只有寡 妇翠花和她一双儿女在的小岛避难,并下令对上岛的生熟面孔格杀无论。小金宝在同翠花的相处中对生活有了另一番理解,渐渐对唐老爷的残忍非常不满,然而她的命运亦掌控在唐老爷手中。
由于两年前揭发同僚贪污,台北警官黄火土(梁家辉)被上级报复调入冷门的外事组工作,利益也曾连带受损的新同事对他怒言相向,加上妻子清芳(刘若英)受不了他长期不回家要求离婚,黄火土感觉他的世界正在逐渐四分五裂。 就在此时,三宗受害者的身份并无关联的震惊了台湾社会的离奇命案发生,法医(杨贵媚)验尸发现他们都是因中一种神秘的黑霉菌产生幻觉而死,因为缺乏此方面的人才,当局从美国请来此种案例的侦办专家凯文莱特(David Morse)协助破案,黄火土重被任用。随着一桩令所有人都目瞪口呆的事实的被发现,一场围绕