故事发生在1930年代的上海。托德(拉尔夫·费因斯RalphFiennes饰)是一名外交官,生活和事业陷入瓶颈,每天都在游乐园和酒吧度过。初来乍到时,托德也有着远大的理想,但逐渐丧失的远见和复杂的政治斗争阻碍了他在事业道路上的前进。在一家夜总会,托德认识了一个名叫索菲亚(娜塔莎·理查德森NatashaRichardson饰)的女人。索菲亚曾经是赫赫有名的伯爵夫人,如今沦落为歌舞女郎。为了养活十岁的女儿,她甚至不得不出卖自己的身体。就是这样两个处境相同的人,却不断地相互吸引。不久,日本侵华战争爆发。这时,托德发现了自己压抑已久的对索菲亚的强烈爱意。