Chan Kam-wah, en polis under täckmantel som undersöker en grupp smyckestjuvar, avslöjar sin täckmantel och blir knivhuggen till döds av tre angripare på en gatumarknad. Hans överordnade, inspektör Lau, beordrar Ko Chow, en annan polis under täckmantel, att återuppta utredningen. Ko Chow accepterar motvilligt eftersom han under sitt tidigare undercoveruppdrag var tvungen att arrestera en person som hade litat på honom som vän.
Rånarna håller en smyckesfabrik överfallen, men någon lyckas varna polisen. En av rånarna, Fu, dödar en polis och startar en eldstrid med de annalkande poliserna. Gänget lyckas med nöd och näppe fly. Polischefen inrättar en särskild specialstyrka för att utreda gänget, under ledning av den unge inspektören John Chan. En stark rivalitet utvecklas mellan Lau och Chan; Chan anser att Lau är gammalmodig och överflödig, medan Lau anser att Chan är oerfaren och arrogant.
För att nå ut till gänget erbjuder Chow dem vapen till försäljning genom mellanhanden Tai Song. Under det första mötet med gängmedlemmen Fu blir de förföljda av medlemmar av brottsutredningsavdelningen under ledning av Chan (som inte är medveten om att Chow är en undercoverpolis). Efter Chan Kam-wahs begravning träffar Chow Lau som ger honom en nyckel till ett skåp i en bowlinghall där vapnen kommer att förvaras. Chow avråder från att dela ut riktiga vapen, men Lau insisterar för att inte förlora spåret av gänget.
Chow träffar sin flickvän Hung, som han gjorde ett frieri till strax innan. När Chow ber henne att skjuta upp bröllopet tills hans fall är avslutat lämnar hon rummet hysteriskt.
Inför överlämningen av vapnen tejpar Chow en inspelningsapparat runt sin midja. Han träffar tre av gängmedlemmarna. Chow blir klappad, men lyckas distrahera dem från bandspelaren. Fu är nöjd med provvapnet och instruerar Chow att träffa honom igen om två dagar vid middagstid för att köpa ytterligare vapen och ammunition.
Nästa dag träffar Chow Lau och ber honom om ytterligare vapen. Lau behöver tid för att skaffa dem, men försäkrar Chow att han kommer att deponera dem två timmar före den överenskomna överlämningen till Fu i bowlinghallen. Under tiden packar Hung sina väskor för att ta ett flyg till Kanada med Tso, en äldre affärsman som tidigare erbjudit sig att lämna sin fru för henne. När Chow får reda på det på telefon ber han henne att gifta sig med honom omedelbart för att få henne på andra tankar. Hung säger till honom att han ska bevisa att han är uppriktig genom att dyka upp på folkbokföringskontoret klockan 10.00 nästa dag, men dagen därpå väntar hon förgäves där tillsammans med sin vän Rose.
På väg till bowlinghallen blir Chow skuggad av poliser. När han inser detta (och eftersom det är ett brott att ha vapnen) ringer han till Lau. Lau berättar för honom att poliserna är från Chans avdelning och beordrar honom att fortsätta medan han skulle reda ut situationen med Chan. När han talar med Chan nämner han Chow som informatör, men håller sin status som undercoverpolis hemlig. Chan vägrar Lau att avbryta förföljelsen av Chow.
Nu på egen hand skakar Chow av sig sina polisförföljare på en MTR-station genom att gå ombord på ett avgående tåg. När han hämtar väskan med vapnen ser han Fu på bowlinghallen. När han lämnar byggnaden anländer polisen. Chow lyckas fly genom att hoppa från ett fönster och plockas upp på gatunivå av Fu som närmar sig i en bil. De kör till gängets gömställe eftersom deras ledare vill träffa Chow. Han erbjuder Chow chansen att delta i ett kommande stort rån.
Fu kör Chow till flygplatsen där han träffar Hung som är på väg att gå ombord på ett plan till Kanada med Tso. Chow försöker få henne att ändra sig, men arresteras av polisen för att ha sålt vapen (medan Hung går ombord på planet). På polisstationen blir Chow misshandlad och torterad av Chans män som vill veta vem som köpt vapnen. Chans överordnade kommer in i rummet, beordrar Chans män att släppa Chow och kallar in Chan och Lau på sitt kontor. Lau erkänner att han har gett Chow vapnen i samband med vapenaffären, men håller tyst om att Chow är en infiltrerad polis. Eftersom olagligt innehav av ett skjutvapen är ett mindre brott föreslår Chan att Chow deltar i överfallet för att ta rånarna på bar gärning. Lau anser att det är en för stor risk, men i slutändan beordrar polischefen att Chow ska delta i det planerade rånet.
Det finns fyra möjliga smyckesbutiker som gänget skulle kunna råna. Alla har svaga säkerhetsåtgärder, värdefulla varor och ligger vid trafikerade vägar. Efter rånet planerar gänget att köra till ett gömställe i hamnområdet där en båt kommer att hämta dem nästa dag. Polisen är ovetande om vilken butik som kommer att bli målet, men planerar att hålla flera polisgrupper i beredskap i närheten.
Av kvällen före rånet beordrar gängledaren deltagarna att samlas i en lägenhet. Av säkerhetsskäl måste de tillbringa den återstående tiden före rånet tillsammans och lämna in sina sökare. Chow skriver adressen till gömstället på ett papper, men kan inte lämna den vidare till sina poliskollegor. Chow och Fu delar ett rum och pratar om sin historia och sina framtidsplaner – Fus fru lämnade honom och han såg aldrig sin son igen, varpå Chow berättar för honom att hans fru också lämnade honom och männen kommer varandra allt närmare. Under natten läser Chow ett brev från Hung som berättar att hon inte åkte till Kanada med Tso utan väntar på honom på Hawaii.
Nästföljande morgon beordrar polisledningen polispatrullerna ut ur beredskap eftersom de inte räknar med att rånet kommer att ske snart längre. Detta är en missbedömning, eftersom gängledaren kallar ihop sina män och utser smyckesaffären Tai Kong till måltavla. Eftersom de särskilda polispatrullerna har dragit sig tillbaka bevakas butiken endast av två civilklädda poliser i en patrullbil. Överfallet börjar när fyra av rånarna går in i butiken, drar sina vapen och kräver att få tag i smyckena. Fu och Chow väntar vid ingången för att hålla ett öga på gatan medan gängledaren väntar i en flyktbil. Där inser Chow att det var Fu som ögonvittnen beskrev som den polismördare som startade eldstriden under rånet mot smyckesfabriken.
När larmet i butiken utlöses skjuter Big Song (en av rånarna) en försäljare. Medan de försöker fly till sina bilar öppnar de två poliserna som bevakar butiken eld och skadar gängmedlemmen Bill. En av flyktbilarna stoppas av polisen. Fu, Chow, Joe och Big Song måste lämna Bill bakom sig under kraftig beskjutning. Joe dödas av polisen medan Big Song försöker dra en annan flyktbil med hjälp av en vajerkabel. I en djärv manöver konfronterar Fu en polisbil som närmar sig och dödar de fyra poliserna i bilen, även om han själv blir skjuten i axeln. Chow räddar Fu genom att döda den polisman som sköt mot Fu.
Fu, Chow, Big Song och Bony (den fjärde överlevande gängmedlemmen) flyr med den stulna bilen till gömstället vid hamnen, där de möter gängledaren som redan väntade på dem. Under tiden hittar polisen Chows lapp med adressen till gömstället på platsen för eldstriden.
Ledaren misstänker en förrädare bland gänget eftersom polisen kom för snabbt till brottsplatsen. Han anklagar Chow eftersom han först nyligen anslöt sig till deras led. Big Song och Fu försvarar Chow och ett mexikanskt dödläge uppstår.
Polisen anländer och omringar gömstället med dussintals män. När Chan ber männen att kapitulera skjuter Big Song mot polisen. De öppnar eld och dödar honom. Bony försöker kapitulera och skjuts av gängledaren för feghet. När chefen också försöker skjuta Chow och Fu dödar de honom istället. Chow skadas av en poliskula och inser att hans skada är dödlig. Han erkänner för Fu att han är polis och ber om en snabb död, men Fu känner sig oförmögen att döda Chow. Medan polisen stormar gömstället och arresterar Fu dör Chow bredvid honom. Lau är rasande över hans död och slår en tegelsten i huvudet på Chan (som redan skryter till en överordnad om sina framgångar) och stormar iväg.