周莲本是农家姑娘,在婚后受丈夫江梅清的影响,逐渐懂得不少革命的道理。北伐战争开始,江梅清参加了北伐军。1927年大革命失败,江被反动派杀害。周莲继承丈夫遗志,毅然参加革命工作,并于30年代初期,去了上海的地下党机关。周的长子立群留苏归来,不久地下党机关被破坏,周莲、立群被捕。为了得到上海地下党组织的人员名单及了解他们与苏区的关系,敌人对她威胁利诱,软硬兼施,但始终不能使她就范。敌人甚至又用立群的生命作为得到所需情报的交换条件,周莲仍不开口。为了革命的利益,儿子献出了年轻的生命。抗战开始后,迫于形势,周莲被释放出狱。她和她的儿女小清、小莲,一同被党组织护送去了延安。。讲述了女孩情变被杀害,变成女鬼来复仇的故事。。上海苏州河上,用摩托车替人送货的马达(贾宏声)接下送接纯真少女牡丹(周迅)的活,两人相处时,牡丹爱上马达,但就在她决定把终身托付给对方时,马达财迷心窍联合黑道朋友绑架了她,令牡丹心灰意冷跳进苏州河里。临跳前,牡丹丢下会变成美人鱼再寻马达的话。
五年后,为自己行为懊悔不迭的马达疑惑牡丹又回来了,开始四处找寻。当在某酒吧里看到扮美人鱼表演的美美(周迅)时,马达认定她就是牡丹,然而美美不过是另一个痴情女子而已。。