1966年,从新加坡返回香港想忘掉过去的周慕云(梁朝伟 饰)住进东方酒店的、同他曾经熟悉的数字2046只差一号的2047号房,开始了他的卖文生涯。眼前、曾经在他身边出现过的一个个女人(章子怡、王菲、张曼玉、刘嘉玲等 饰)经过他大脑的过影后,令他对时空产生疑惑,不但忘不了过去,一幕幕往事反而更加挥之不去。 为了与过去作更好的告别,他将生活的点点滴滴化为文字,写下小说《2046》(说只要搭上了前往2046的列车,人们就可以找回失去的记忆)。
长久以来默默无名的小说家泽田(莫少聪 饰),凭借一本恐怖小说《梦杀》而成为万人关注的大作家。据说他把身边所有的人包括自己都写到了小说中,而书中发生的每件事都将在现实中一一呈现。不管是不是噱头,人们只知道泽田的境遇大为改观,大众更翘首企盼《梦杀2》的面世。与之相对,如何在新作里紧紧抓住读者的眼球却成为泽田发愁的头等大事。就在此时,名叫张静茹(朱珠 饰)的美艳单身女子搬到泽田家的隔壁。作家不由得为对方所吸引,并将邻居写进了自己的书里。 张一次次地出现,打破了泽田家的宁静与和谐,而恐怖与诡异的氛围也悄悄在这些人身边蔓延……