Un poliziotto sotto copertura, Chan Kam-wah, che sta indagando su un gruppo di ladri di gioielli, fa saltare la sua copertura e viene accoltellato a morte da tre aggressori in un mercato di strada. Il suo superiore, l’ispettore Lau, ordina a Ko Chow, un altro poliziotto sotto copertura, di riprendere le indagini. Ko Chow accetta a malincuore perché durante la sua precedente missione sotto copertura ha dovuto arrestare qualcuno che si era fidato di lui come amico.
I rapinatori stanno rapinando una fabbrica di gioielli, ma qualcuno riesce ad avvisare la polizia. Uno dei rapinatori, Fu, uccide un poliziotto, iniziando uno scontro a fuoco con i poliziotti che si avvicinano. La banda riesce a malapena a fuggire. Il commissario di polizia istituisce una task force dedicata per indagare sulla banda, sotto la guida del giovane ispettore John Chan. Una forte rivalità si sviluppa tra Lau e Chan; Chan considera Lau all’antica e fuori dalla sua portata, mentre Lau considera Chan inesperto e arrogante.
Per raggiungere la banda, Chow offre loro delle armi in vendita attraverso l’intermediario Tai Song. Durante il primo incontro con il membro della banda Fu vengono pedinati dai membri del Dipartimento di Investigazione Criminale sotto il comando di Chan (che non sa che Chow è un poliziotto sotto copertura). Dopo il funerale di Chan Kam-wah, Chow incontra Lau che gli consegna la chiave di un armadietto in una pista da bowling dove saranno nascoste le armi. Chow sconsiglia di distribuire armi vere, ma Lau insiste per non far perdere le tracce della banda.
Chow si incontra con la sua ragazza Hung, alla quale poco prima aveva fatto una proposta di matrimonio. Quando Chow le chiede di rimandare il matrimonio fino alla chiusura del suo caso, lei lascia la stanza istericamente.
Prima della consegna delle armi, Chow si lega un registratore alla vita. Si incontra con tre membri della banda. Chow viene perquisito, ma riesce a distrarli dal registratore. Fu è soddisfatto della pistola campione e incarica Chow di incontrarlo di nuovo tra due giorni a mezzogiorno per comprare altre armi e munizioni.
Il giorno dopo Chow incontra Lau e gli chiede altre armi. Lau ha bisogno di tempo per procurarsele, ma assicura a Chow che le depositerà due ore prima della prevista consegna a Fu nella sala da bowling. Nel frattempo Hung fa le valigie per prendere un volo per il Canada con Tso, un uomo d’affari più anziano che si era offerto in precedenza di lasciare la moglie per lei. Quando Chow lo viene a sapere al telefono, le chiede di sposarlo immediatamente per farle cambiare idea. Hung gli dice di dimostrare che è sincero presentandosi all’ufficio del registro alle 10:00 del mattino del giorno dopo, ma il giorno seguente lei aspetta lì invano con la sua amica Rose.
Andando al bowling, Chow viene pedinato da dei poliziotti. Quando se ne accorge (e visto che avere le pistole è un reato) chiama Lau. Lau gli dice che i poliziotti sono del dipartimento di Chan e gli ordina di procedere mentre lui avrebbe risolto la situazione con Chan. Quando parla con Chan menziona Chow come informatore, ma tiene segreto il suo status di poliziotto sotto copertura. Chan rifiuta la richiesta di Lau di annullare il pedinamento di Chow.
Ora da solo, Chow si libera dei suoi inseguitori in una stazione MTR salendo su un treno in partenza. Mentre prende la borsa con le pistole, nota Fu al bowling. Mentre lascia l’edificio, arriva la polizia. Chow riesce a fuggire saltando da una finestra e viene raccolto a livello della strada da Fu che si avvicina in auto. I due vanno al nascondiglio della banda perché il loro capo vuole incontrare Chow. Offre a Chow la possibilità di partecipare ad una prossima grande rapina.
Fu porta Chow all’aeroporto dove incontra Hung, che sta per salire su un aereo per il Canada con Tso. Chow cerca di farle cambiare idea, ma viene arrestato dalla polizia per vendita di armi (mentre Hung si imbarca sull’aereo). Alla stazione di polizia, Chow viene picchiato e torturato dagli uomini di Chan che vogliono conoscere l’acquirente delle armi. Il superiore di Chan entra nella stanza, ordina agli uomini di Chan di rilasciare Chow e chiama Chan e Lau nel suo ufficio. Lau ammette di aver dato a Chow le armi per l’affare delle armi, ma tace sul fatto che Chow è un poliziotto sotto copertura. Poiché il possesso illegale di un’arma da fuoco è un reato minore, Chan propone che Chow partecipi alla rapina per cogliere i rapinatori in flagrante. Lau lo considera troppo rischioso, ma alla fine il capo della polizia ordina la partecipazione di Chow alla rapina programmata.
Ci sono quattro possibili gioiellerie che la banda potrebbe rapinare. Tutte hanno deboli misure di sicurezza, merce di valore e sono situate in strade trafficate. Dopo la rapina, la banda pianifica di guidare fino a un nascondiglio nella zona del porto dove una barca li prenderà il giorno seguente. La polizia non sa quale negozio sarà preso di mira, ma prevede di tenere diverse squadre di polizia in attesa nelle vicinanze.
La vigilia della rapina, il capo della banda ordina ai partecipanti di riunirsi in un appartamento. Per motivi di sicurezza, devono passare insieme il tempo rimanente prima della rapina e consegnare i loro cercapersone. Chow scrive l’indirizzo del nascondiglio su un pezzo di carta, ma non riesce a trasmetterlo ai suoi colleghi della polizia. Chow e Fu condividono una stanza e parlano della loro storia e dei loro piani futuri – la moglie di Fu lo ha lasciato e non ha più visto suo figlio, al che Chow gli dice che anche sua moglie lo ha lasciato e gli uomini diventano sempre più vicini. Durante la notte Chow legge una lettera di Hung che gli dice che non è andata in Canada con Tso, ma lo sta aspettando alle Hawaii.
Il mattino dopo la direzione della polizia ordina alle squadre di polizia di uscire dallo stato di allerta perché non si aspettano più che la rapina avvenga presto. Questo è un errore di valutazione, perché il capo della banda chiama a raccolta i suoi uomini e designa come obiettivo la gioielleria Tai Kong. Dato che le squadre speciali della polizia si sono ritirate, il negozio è sorvegliato solo da due poliziotti in borghese in un’auto di pattuglia. La rapina inizia quando quattro rapinatori entrano nel negozio, estraggono le pistole e chiedono i gioielli. Fu e Chow aspettano all’ingresso per tenere d’occhio la strada mentre il capo della banda aspetta in un’auto in fuga. Lì Chow si rende conto che è Fu, che i testimoni oculari descrivono come l’assassino di poliziotti che ha iniziato lo scontro a fuoco durante la rapina alla gioielleria.
Quando scatta l’allarme del negozio, Big Song (uno dei rapinatori) spara a una commessa. Mentre cercano di fuggire verso le loro auto, i due poliziotti che sorvegliano il negozio aprono il fuoco, ferendo il membro della banda Bill. Una delle auto in fuga viene fermata dalla polizia. Fu, Chow, Joe e Big Song devono lasciarsi Bill alle spalle sotto il fuoco pesante. Joe viene ucciso dalla polizia mentre Big Song cerca di far partire un’altra auto per la fuga. Con una manovra audace Fu affronta un’auto della polizia che si avvicina e uccide i quattro poliziotti all’interno, anche se viene colpito alla spalla. Chow salva la vita di Fu uccidendo il poliziotto che ha sparato a Fu.
Fu, Chow, Big Song e Bony (il quarto membro superstite della banda) scappano con l’auto rubata verso il nascondiglio al porto, dove incontrano il capo della banda che li stava già aspettando. Nel frattempo, la polizia trova il biglietto di Chow con l’indirizzo del nascondiglio sul luogo dello scontro a fuoco.
Il capo sospetta un traditore nella banda poiché la polizia è arrivata troppo presto sulla scena del crimine. Incrimina Chow perché è entrato da poco nei loro ranghi. Big Song e Fu difendono Chow ed emerge uno stallo messicano.
La polizia arriva e circonda il nascondiglio con decine di uomini. Quando Chan chiede agli uomini di arrendersi, Big Song spara alla polizia. Questi aprono il fuoco e lo uccidono. Bony cerca di arrendersi e viene colpito dal capo della banda per codardia. Quando il capo cerca di sparare anche a Chow e Fu, loro invece lo uccidono. Chow viene ferito da un proiettile della polizia e si rende conto che la sua ferita è mortale. Confessa a Fu di essere un poliziotto e chiede una morte rapida, ma Fu si sente incapace di uccidere Chow. Mentre la polizia irrompe nel nascondiglio e arresta Fu, Chow muore accanto a lui. Lau è furioso per la sua morte e spacca un mattone sulla testa di Chan (che si sta già vantando con un superiore del suo successo) e se ne va infuriato.