1960年代的香港,因生母在阿飞旭仔(张国荣)长大成人过程中的缺失,他把自己优雅地比喻为“无根鸟”,对生命中遇到的每一个女人都表现得放荡不羁,售票员苏丽珍(张曼玉)和舞女咪咪(刘嘉玲)先后令他感受过温暖,可是她们也只能当当小情人。为摆脱沉重和无力感,旭仔抛下一切去南洋找寻生母。 暗恋过苏丽珍且目睹过她与旭仔情感一路变化的,曾是小巡警今在跑船的超仔(刘德华)在菲律宾又遇到旭仔,是缘分也是宿命,他参与、见证了阿飞命运被改写的过程。
1930年代的上海,在同一间工厂做工的世钧(黎明)和曼桢(吴倩莲)成为恋人。曼桢早年丧父,姐姐曼璐(梅艳芳)为了养活一家老小,心痛离别恋人去当舞女赚钱,最终嫁给了有妇之夫祝鸿才(葛优)。 世钧收到告急家书回到南京,方知家人召回只为让其成亲。因为性格上的软弱,也因久等不来曼桢的书信,世钧最终迎娶了他并不喜欢的门当户对的翠芝(吴辰君)。上海这边,不能生育的曼璐为保全自已的地位,设计令曼桢怀上了祝鸿才的孩子,葬送了曼桢与世钧的爱情。曼璐死后,曼桢为了孩子委身祝鸿才。两个有缘无分的人就这样错过情缘。