故事以1960年代初期為背景,英俊不覊的旭仔(阿飛)(張國榮飾)是上海移民,他從未見過生母,自小由養母(潘迪華飾)養大,因此長大後他對生命中遇到的每一個女人都冷酷無情。放蕩不羈的他先後與南華體育會售票員蘇麗珍(張曼玉飾)和舞女咪咪(劉嘉玲飾)同居,但後來又相繼拋棄了她們。旭仔決要找到生母,為此他隻身前往菲律賓,可是生母拒見,旭仔帶著怨恨離開。旭仔在離開香港前,將車子給予歪仔(張學友飾)。咪咪發現旭仔走了,問歪仔知不知道他在那裡,歪仔告訴她旭仔去了菲律賓,並將旭仔的車子賣掉,將錢給她去菲律賓找旭仔。
一直暗戀蘇麗珍的警察超仔(劉德華飾)目睹了蘇麗珍與旭仔的決裂,並在母親死後,決定改行去跑船。超仔在菲律賓唐人街又遇上了旭仔,不過他假裝自己不認識他。不久,旭仔因為買賣假護照而在一場毆鬥中身負重傷,超仔問他記不記得某年4月16日下午3時他在做甚麼,旭仔說要記得的他永遠記得,但是他叫超仔告訴蘇麗珍他已經不記得了。最後他守著死在一列異國火車上的旭仔。