社會動蕩不安的唐朝末年,每十八年舉行一次的武林賞善罰惡大會上,武林十大前輩推選移花宮主誅殺十大惡人。燕南天突現阻止,以一招之差擊敗宮主后夫妻決裂,移花宮主立誓十八年后遣傳人屠盡十惡。十大惡人為報燕南天救命之恩,收養其子小魚兒(劉德華),刻意培養成冷血惡徒;宮主則撫養花無缺(林青霞),灌輸仇視男性的觀念。十八年后,小魚兒與花無缺在新一屆大會上相遇并奉命對決。隨著多次交鋒,兩人逐漸發現被利用的真相,在揭開身世之謎后聯手對抗幕后黑手。最終兄弟合力粉碎陰謀,終結了延續兩代人的恩怨糾葛。