鸦片战争前夕,大侠黄飞鸿(王珏饰)协助钦差大人林则徐(鲍方饰)查禁鸦片。十二贝勒(熊欣欣饰)勾结烟商决定亲自来广州对付黄林二人。广东富商苏仁(吴孟达饰)的儿子苏灿(甄子丹饰)武功了得,苏灿的女友戴懿德(袁洁莹饰)刚从国外回国,遭到火莲教袭击,苏灿为救女友用巨型炮仗炸毁了太平鼓还伤及了无辜。黄飞鸿得知此事后找到苏灿理论,苏灿对黄不满矛盾由此而生。十二贝勒知道两人不和趁机挑拨,想利用苏灿对付黄飞鸿。暗恋苏仁的小姨峭牙珍(陈淑兰饰)因为误会率领众人去破坏戴懿德的妇女会,与此同时戴发现了十二贝勒的阴谋,但反被十二贝勒抓住,苏灿为救戴被十二贝勒擒住,还让苏灿染上了毒瘾。受到挑拨之后的苏灿前去行刺林则徐,与黄飞鸿发生打斗,戴懿德终于出现说明了真相,苏灿懊悔不已一蹶不振。幸亏老乞丐(关海山饰)出现帮助苏灿戒毒成功,在千军一发之际苏灿出现帮助黄飞鸿制服了十二贝勒。《黄飞鸿与苏乞儿》讲述了黄飞鸿卷入黑帮争斗中,他遇到一个聪明机智的老乞丐苏乞儿,二人成为朋友。在对付黑帮势力过程中,黄飞鸿从苏乞儿那里学到很多技巧,并看清了自己一直以来错综复杂的情感纠葛。最后两位英雄故事发生在清末民初,苏灿(周润发 饰)和万子豪(刘德华 饰)两家均以开设武馆维生,两家人相互排挤妒忌,关系千钧一发。然而,苏灿和万子豪两个小儿天真无邪,反而成为了感情十分要好的挚友。某日,两人结识了马坤(苗侨伟 饰)和萧玲(米雪 饰),苏灿和萧玲一见钟情,很快就走到了一起。 苏灿的父亲死了,苏灿被诬陷为凶手而锒铛入狱,为了救苏灿,萧玲不惜献出了自己的身体。然而,出狱后的苏灿却并没有领萧玲的情,反而指责她不知检点,水性杨花。之后,苏灿和马坤、万子豪一起来到省城开设武馆,历经艰险,饱受排挤,在盈盈(陈秀珠 饰)等一干好友的帮助下才站稳脚跟。