1966年,从新加坡返回香港想忘掉过去的周慕云(梁朝伟 饰)住进东方酒店的、同他曾经熟悉的数字2046只差一号的2047号房,开始了他的卖文生涯。眼前、曾经在他身边出现过的一个个女人(章子怡、王菲、张曼玉、刘嘉玲等 饰)经过他大脑的过影后,令他对时空产生疑惑,不但忘不了过去,一幕幕往事反而更加挥之不去。 为了与过去作更好的告别,他将生活的点点滴滴化为文字,写下小说《2046》(说只要搭上了前往2046的列车,人们就可以找回失去的记忆)。
影片故事取材于南京大屠杀期间日军真实罪证影像。一群生活在南京的百姓躲在吉祥照相馆中避难,为了尽可能的多活一日,他们被迫帮助日军摄影师冲洗底片,却意外冲印出了能证明日军屠城的罪证照片。他们原本只想在大屠杀中保命活下去,面对日军在南京城内的暴行,他们决定让这些底片留存下去……