故事发生在1921一年,艾娃(玛丽昂·歌迪亚 Marion Cotillard 饰)和姐姐玛格达(安吉拉·萨拉弗安 Angela Sarafyan 饰)经受不住繁华都市的霓虹诱惑,启程从波兰前往纽约淘金。半路上,玛格达不幸患上了当时是不治之症的肺结核,因此而被医生隔离在了位于埃利斯岛上的医院之中,情同手足的姐妹两人就此分道扬镳。
来到纽约之后,艾娃才发现,这里的一切远不如幻想中的美好,她不幸的落入了皮条客布鲁诺(华金·菲尼克斯 Joaquin Phoenix 饰)的手中,成为了一名妓女。艾娃的生活中充满了伤痛和屈辱,能够再次和姐姐相见成为了她心中的唯一信念。一次偶然中,艾娃结识了名叫奥兰多(杰瑞米·雷纳 Jeremy Renner 饰)的魔术师,善良的奥兰多让艾娃明白,他可能是自己迈向新生活的唯一跳板。。越战时期,奔赴战场的美国大兵途径香港时,会在湾仔停留,这让湾仔自1950年代末的数年间,充斥靠他们过日子的纹身师傅、小要饭、拿着照片找爸爸的“杂种”、阿飞及实为妓女的Bar女郎,形成特有的风情。
Bar坊妈咪回乡找人做Bar女,家境贫寒、相貌不俗、个性倔强的赖水尾(夏文汐)和几个同乡姐妹从大澳渔村来到湾仔,开始卖肉生涯。起初,渔家女受到其他Bar女的嘲笑,但经过经验丰富的小伶玉(于倩)的一番调教,她们很快不输她人,易名水美丽的赖水尾更是出尽风头。风度翩翩却又年少轻狂的“杂种”Jimmy(黄秋生)幼年丧母,小伶玉将他养大后视作私有财产,不过Jimmy对她并无爱情,他心里只有不知身在何方的父亲。为Jimmy着迷的不止小伶玉一人,诸多Bar女只怪小伶玉将他看得太紧,他又不给她们揩油的机会。水美丽亦钟情于他。
某次Jimmy被阿飞堵截,水美丽机智将他相救,又相告有心听来的他父亲的名字,两人瞒着小伶玉开始恋爱。后来水美丽为了他与小伶玉撕破脸,主动离开Bar坊,而找到父亲的他早忘记当初誓言,拍拍屁股去了美国。一家不要家家不要的行规令水美丽成为街头妓女,但小伶玉这个机会亦不给她,无奈之下她去了麻油地,几年挣扎,境况越来越糟。亏得性情相投的黑帮大姐大王英(叶德娴)相助,水美丽东山再起,短短几年更将生意做到了尖沙咀。
随着越战的结束,湾仔渐成荒凉地,小伶玉亦变作风中残烛。水美丽念旧恩将她探望时,Jimmy恰好回港。听闻他是回港找妻,旁人都以为水美丽会与他再续前缘,对他早已死心的水美丽心底亦再泛涟漪,不料他早变作世俗之人,更将两人的感情忘得一干二净。其后水美丽有心将精力全部放在生意上,无奈时代风云不是她及待她若同性爱侣的王英所能把握。。