阿杰(张学友 饰)是位飞虎队里的精英,他与父亲肥波(吴孟达 饰)的关系并不好。肥波当年做警察的时候得罪了重案组的探长洪坤(秦沛 饰)受到报复,以致生活艰苦。竟在一次与流氓打架时错手打死了大儿子。阿杰也因为如此始终难以原谅父亲。此时的肥波已经退休,在夜总会上班,有个做舞女的女友阿红(吴家丽 饰)。 阿杰营救了被劫匪挟持的Heidi(郑秀文 饰),两人互生好感。冤家路窄的是,Heidi竟然是洪坤的女儿。洪坤也没有再当警察,而是当上了黑帮头目。他知道自己的女儿喜欢上了阿杰,心狠手辣的他决意拆散他们,更找人追杀阿杰。 肥波为了保护儿子被烧死了,阿杰誓要找洪坤算账,但是又遭到了Heidi出面阻止……
在执行一次破坏加油站的重大任务时,三名 Umkhonto weSizwe (MK) 自由战士意识到他们惨遭陷害,警察已经做好了随时逮捕他们的准备。警察对他们展开了激烈的殊死追捕,他们被迫躲在银行内避难。这三人一致认为,有人 — 也许他们中的一人 — 是“Impimpi”,即出卖团队的警察间谍。问题是,这个人会是谁?在银行里,他们之间的压力和紧张感越来越强烈。所有参与其中的人都有一个共同点:为自由而战。三人意识到他们唯一的选择是被捕或死亡,他们决定就释放纳尔逊·曼德拉进行谈判
日本警探山本(真田广之)来香港途中,遇上押解犯人李仲青回港的香港女警Michelle(杨紫琼).李的同伙欲救李,结果,两人都被山本杀死,而匪徒一共有四人,剩下的2个匪徒报复,杀害了山本的妻女,山本亦杀死其中一名匪徒,他们追踪最后一人到了矿厂,展开了一场恶战…………