19世纪末,上海英租界区的长三书寓,日日宴歌。这一晚又是宾客盈门,觥筹交错。东道主叫周双珠,是一位可爱、大气的青楼女子,同时也是公阳里老鸨的亲生女。正当众宾客酒兴正酣之际,在同洋人打交道的衙门供职的文官王莲生却首先离席告退。他是去赴另一妓女张惠贞之约。此事极大地惹恼了妓女沈小红。小红在荟芳里挂头牌,但因为她生性刚烈,快人快语,少有清客敢摘她的牌。莲生是唯一与她长期往来的人。次日清晨小红找上门来,在众目睽睽之下对惠贞大打出手。其实莲生所为事出有因。他觉察到小红同时还跟一个年轻戏子柳儿相好,并从小红的态度上感觉到些许冷淡。烦闷之下莲生去找另一个妓女,结果打翻了小红这个醋坛子。
为解决问题,莲生在朋友洪善卿和汤啸庵的陪伴下来找小红,被小红伶牙利齿的女仆大骂一顿。朋友在窘境中撇下莲生径自离去,莲生只得独自去见小红。毕竟已有了四五年的感情,一番抚慰之后,二人又和好如初。特殊的身份令双珠常常在公阳里充当家长的角色,妓女们之间的争风吃醋需要她平息,惹上身的人命官司也需要她出面排解。双珠看淡风尘以及练达的处世态度受到了洪善卿的赏识。黄翠凤是尚仁里的年轻妓女,是个精明、会为自己打算的女人,她渴望早日脱身青楼,获得自由。她同时自如地应付着几个男人,其中关系最密切的是有钱又有闲的名流罗子富。翠凤一直同他在一起是因为她觉得他会为她赎身。
小红看上去花钱并不大手大脚,却欠下大笔的债务。莲生对此困惑不解,不过还是替她结清了。一天酒宴过后,酒醉的莲生在没有事先告知的情况下,踉跄地冲进小红的卧室,结果正撞上小红和戏子柳儿在一起。盛怒之下,莲生将他送给小红的礼物砸了个粉碎。莲生断然决定娶惠贞做妾,拜托善卿为她筹备礼。善卿力阻,却未成功。罗于富终于为翠凤赎身。离开时,翠风将所有衣物、首饰都留给了其他姐妹。春去秋来,莲生得到提升,即将离开上海,朋友们在书寓举行宴会为他送行。小红过去的女仆现在为双珠做事。从她的口中,莲生知道了小红凄凉的近况。但他并不想再次陷入其中,他要走了,走出这个令人眼花缭乱的“梦”……