清朝末年,广东佛山武师黄飞鸿(李连杰)曾担任黑旗水军教头和民团总教练。他经常在宝芝林教授武术,希望通过武术来振兴国家,但看到政府对待洋人的态度软弱无力,他逐渐意识到仅靠武术是不够的,需要寻找其他拯救国家的途径。在戏院里,黄飞鸿的女友十三姨(关之琳)与梅县梁宽(元彪)误会了黄飞鸿的身份,最终加入了武夫严振东的门下,成为黄飞鸿的敌人。严振东与洋人合作,宣传美国的金山世界,他们骗走了包括十三姨在内的许多中国妇女,将她们带上了洋船。梁宽意识到了黄飞鸿是朋友而非敌人,在他的帮助下,黄飞鸿开始与洋人及其帮凶展开了激烈的战斗。