1966年,从新加坡返回香港想忘掉过去的周慕云(梁朝伟 饰)住进东方酒店的、同他曾经熟悉的数字2046只差一号的2047号房,开始了他的卖文生涯。眼前、曾经在他身边出现过的一个个女人(章子怡、王菲、张曼玉、刘嘉玲等 饰)经过他大脑的过影后,令他对时空产生疑惑,不但忘不了过去,一幕幕往事反而更加挥之不去。 为了与过去作更好的告别,他将生活的点点滴滴化为文字,写下小说《2046》(说只要搭上了前往2046的列车,人们就可以找回失去的记忆)。
影片前半部分是一部硬核犯罪动作片,讲述了一名被夹在警察和黑帮之间的杀手,为了生存而奋力拼搏的故事。后半部分则采用喜剧风格,以自我恶搞的形式重新演绎了前半部分的故事。北野武饰演主角杀手“鼠”。
失去家园22年后,阿鲁尔·莫日·瓦尔曼回到家乡坦贾武尔参加堂兄的婚礼。在喜庆的气氛中,阿鲁尔重新认识了一个他想不起来的乐观的男人。在这位不知名男子的帮助下,阿鲁尔重新认识了自己的过去。