Een undercoveragent, Chan Kam-wah, die een groep juwelendieven onderzoekt, verraadt zijn dekmantel en wordt op een straatmarkt door drie aanvallers doodgestoken. Zijn superieur, inspecteur Lau, geeft Ko Chow, een andere undercoveragent, de opdracht het onderzoek te hervatten. Ko Chow accepteert met tegenzin omdat hij tijdens zijn vorige undercover missie iemand heeft moeten arresteren die hem als vriend had vertrouwd.
De overvallers overvallen een juwelenfabriek, maar iemand slaagt erin de politie te waarschuwen. Een van de overvallers, Fu, doodt een politieman en begint een vuurgevecht met de naderende politieagenten. De bende ontsnapt ternauwernood. De politiecommissaris zet een speciale eenheid op om de bende te onderzoeken, onder leiding van de jonge inspecteur John Chan. Er ontstaat een sterke rivaliteit tussen Lau en Chan; Chan beschouwt Lau als ouderwets en boven zijn kunnen, terwijl Lau Chan als onervaren en arrogant beschouwt.
Om de bende te bereiken, biedt Chow hen wapens te koop aan via de tussenpersoon Tai Song. Tijdens de eerste ontmoeting met bendelid Fu worden ze gevolgd door leden van de recherche onder leiding van Chan (die niet weet dat Chow een undercover politieman is). Na de begrafenis van Chan Kam-wah ontmoet Chow Lau die hem een sleutel overhandigt van een kastje in een bowlingbaan waar de wapens zullen worden opgeborgen. Chow raadt af echte wapens uit te delen, maar Lau dringt aan om de bende niet uit het oog te verliezen.
Chow ontmoet zijn vriendin Hung, aan wie hij kort daarvoor een huwelijksaanzoek heeft gedaan. Als Chow haar vraagt het huwelijk uit te stellen totdat zijn zaak is gesloten, verlaat ze hysterisch de kamer.
Voor de overhandiging van de wapens, bindt Chow een recorder om zijn middel. Hij ontmoet drie van de bendeleden. Chow wordt gefouilleerd, maar weet ze af te leiden van de bandrecorder. Fu is tevreden met het proefwapen en draagt Chow op hem over twee dagen rond het middaguur weer te ontmoeten om extra wapens en munitie te kopen.
De volgende dag ontmoet Chow Lau en vraagt hem om extra wapens. Lau heeft tijd nodig om ze te halen, maar verzekert Chow dat hij ze twee uur voor de afgesproken overdracht aan Fu in de bowlinghal zal afgeven. Ondertussen pakt Hung haar koffers om een vlucht naar Canada te nemen met Tso, een oudere zakenman die eerder had aangeboden zijn vrouw voor haar te verlaten. Als Chow dat aan de telefoon verneemt, vraagt hij haar onmiddellijk met hem te trouwen om haar van gedachten te doen veranderen. Hung zegt hem te bewijzen dat hij oprecht is door de volgende dag om 10.00 uur op het registratiekantoor te verschijnen, maar de volgende dag wacht ze daar tevergeefs met haar vriendin Rose.
Op weg naar de bowlingbaan wordt Chow achtervolgd door politieagenten. Wanneer hij zich dit realiseert (en omdat het hebben van de wapens een misdaad is) belt hij Lau. Lau vertelt hem dat de politieagenten van Chan’s afdeling zijn en beveelt hem door te gaan terwijl hij de situatie met Chan zou uitzoeken. In zijn gesprek met Chan noemt hij Chow een informant, maar houdt zijn status als undercoveragent geheim. Chan weigert Lau’s verzoek om de achtervolging van Chow af te blazen.
Nu hij alleen is, schudt Chow zijn politie achtervolgers af op een MTR station door op een vertrekkende trein te stappen. Terwijl hij de tas met de wapens haalt, ziet hij Fu bij de bowlingbaan. Als hij het gebouw verlaat, arriveert de politie. Chow weet te ontsnappen door uit een raam te springen en wordt op straat opgepikt door Fu die in een auto nadert. Ze rijden naar de schuilplaats van de bende omdat hun leider Chow wil ontmoeten. Hij biedt Chow de kans om deel te nemen aan een komende grote overval.
Fu rijdt Chow naar het vliegveld waar hij Hung ontmoet, die op het punt staat om met Tso op het vliegtuig naar Canada te stappen. Chow probeert haar op andere gedachten te brengen, maar wordt gearresteerd door de politie wegens wapenhandel (terwijl Hung aan boord van het vliegtuig gaat). Op het politiebureau wordt Chow in elkaar geslagen en gemarteld door Chan’s mannen die willen weten wie de koper van de wapens is. Chan’s overste komt binnen, beveelt Chan’s mannen Chow vrij te laten en roept Chan en Lau in zijn kantoor. Lau geeft toe dat hij Chow de wapens heeft gegeven voor de wapendeal, maar verzwijgt dat Chow een undercoveragent is. Omdat het illegale bezit van een vuurwapen een kleine overtreding is, stelt Chan voor dat Chow deelneemt aan de overval om de overvallers op heterdaad te betrappen. Lau vindt dat een te groot risico, maar uiteindelijk geeft de politiechef opdracht aan Chow om mee te werken aan de geplande overval.
Er zijn vier mogelijke juwelierszaken die de bende zou kunnen beroven. Ze hebben allemaal zwakke beveiligingsmaatregelen, waardevolle koopwaar en liggen aan drukke wegen. Na de overval is de bende van plan naar een schuilplaats in het havengebied te rijden, waar een boot hen de volgende dag zal oppikken. De politie weet niet welke winkel het doelwit zal zijn, maar is van plan verschillende politieteams in de buurt stand-by te houden.
Op de vooravond van de overval beveelt de bendeleider de deelnemers zich te verzamelen in een flat. Om veiligheidsredenen moeten ze de resterende tijd voor de overval samen doorbrengen en hun pagers inleveren. Chow schrijft het adres van de schuilplaats op een stuk papier, maar is niet in staat het door te geven aan zijn politiecollega’s. Chow en Fu delen een kamer en praten over hun verleden en toekomstplannen – Fu’s vrouw heeft hem verlaten en hij heeft zijn zoon nooit meer gezien, waarop Chow hem vertelt dat zijn vrouw hem ook heeft verlaten en de mannen worden steeds hechter. Gedurende de nacht leest Chow een brief van Hung die hem vertelt dat ze niet met Tso naar Canada is gegaan, maar op hem wacht in Hawaii.
De volgende ochtend geeft de politieleiding de opdracht de politieteams uit stand-by te halen omdat ze niet meer verwachten dat de overval snel zal plaatsvinden. Dit is een inschattingsfout, want de bendeleider roept zijn mannen bijeen en wijst de juwelierszaak Tai Kong aan als doelwit. Aangezien de speciale politieteams zich hebben teruggetrokken, wordt de winkel slechts bewaakt door twee politieagenten in burger in een patrouillewagen. De overval begint wanneer vier van de overvallers de winkel binnenkomen, hun geweren trekken en om de juwelen vragen. Fu en Chow wachten bij de ingang om de straat in de gaten te houden, terwijl de bendeleider in een vluchtauto wacht. Daar realiseert Chow zich dat het Fu was die door ooggetuigen werd omschreven als de politiemoordenaar die het vuurgevecht begon tijdens de overval op de juwelenfabriek.
Wanneer het alarm van de winkel afgaat, schiet Big Song (een van de overvallers) een verkoopster neer. Terwijl ze proberen te ontsnappen naar hun auto’s, openen de twee politieagenten die de winkel bewaken het vuur, waarbij bendelid Bill gewond raakt. Een van de vluchtauto’s wordt door de politie aangehouden. Fu, Chow, Joe en Big Song moeten Bill achterlaten onder hevig vuur. Joe wordt gedood door de politie, terwijl Big Song probeert een andere vluchtauto onder stroom te zetten. In een gedurfde manoeuvre gaat Fu de confrontatie aan met een naderende politieauto en doodt de vier agenten binnenin, hoewel hij in zijn schouder wordt geschoten. Chow redt Fu’s leven door de agent die op Fu schoot te doden.
Fu, Chow, Big Song, en Bony (het vierde overlevende bendelid) ontsnappen met de gestolen auto naar de schuilplaats bij de haven, waar ze de bendeleider ontmoeten die al op hen stond te wachten. Ondertussen vindt de politie het briefje van Chow met het adres van de schuilplaats op de plaats van het vuurgevecht.
De leider vermoedt een verrader onder de bende omdat de politie te snel op de plaats delict was. Hij beschuldigt Chow omdat hij pas sinds kort lid van de bende is. Big Song en Fu verdedigen Chow en er ontstaat een Mexicaanse impasse.
De politie arriveert en omsingelt de schuilplaats met tientallen mannen. Als Chan de mannen verzoekt zich over te geven, schiet Big Song op de politie. Zij openen het vuur en doden hem. Bony probeert zich over te geven en wordt door de bendeleider neergeschoten wegens lafheid. Als de baas ook probeert Chow en Fu neer te schieten, doden ze hem in plaats daarvan. Chow raakt gewond door een politiekogel en realiseert zich dat zijn verwonding fataal is. Hij bekent aan Fu dat hij een agent is en vraagt om een snelle dood, maar Fu voelt zich niet in staat om Chow te doden. Terwijl de politie de schuilplaats bestormt en Fu arresteert, sterft Chow naast hem. Lau is woedend over zijn dood en slaat een baksteen op Chan’s hoofd (die al aan het opscheppen is tegen een meerdere over zijn succes) en stormt weg.