1930年的上海,乡村少年水生(王啸晓饰)来到上海滩投奔六叔(李雪健饰),六叔将水生带到大上海的歌舞皇后小金宝(巩俐饰)跟前伺候小金宝。小金宝是上海滩一霸唐老爷(李保田饰)的女人,但却与唐老爷的手下宋二爷有奸情,而宋二爷一直想成为老大。六叔死了,老爷告诉水生是余胖子(刘江饰)干的,随后带着小金宝、水生等人到一个小岛避难,岛上只有寡妇翠花(蒋宝英饰)和她一双儿女。老爷下令无论谁随便上岛,格杀无论,不久后,和翠花嫂相好的男人的尸体边出现在芦苇丛中,小金宝知道是老爷做的,对老爷的残忍非常不满,而孤苦无依的水生也