十六岁入行的阮玲玉(张曼玉 饰)1929年进入联华影片公司后,出演了许多严肃影片。与此同时,阮玲玉厌倦了幼稚的赌鬼男友张达民(吴启华 饰),倾心于成熟的已婚富商唐季珊(秦汉 饰)。张达民起诉阮唐通奸,
1966年,从新加坡返回香港想忘掉过去的周慕云(梁朝伟 饰)住进东方酒店的、同他曾经熟悉的数字2046只差一号的2047号房,开始了他的卖文生涯。