六十年代香港警察貪腐盛行,賭檔、粉檔與警方構成百億港幣利益鏈。九龍便衣火麒麟(黃秋生飾)因破案遭上峰施壓,以非法手段破案時誤傷大學生韓志邦(方力申飾),后經中間人豬油仔(王晶飾)斡旋脫困。華人總探長徐樂功(梁家輝飾)權勢熏天,其親信陳細九(陳奕迅飾)五年內由普通警員晉升為探長,代價是家中被迫收留九名黑幫情婦。1974年廉政公署成立,嚴國梁(林保怡飾)召集韓志邦、火麒麟等組成調查團隊,展開針對警界貪腐的清算行動。陳細九涉案事發后失去一切之際,意外與某位女性建立情感羈絆,而徐樂功等舊勢力亦面臨法律審判。廉政公署通過系統性調查,最終瓦解了盤踞港島數十年的警黑利益網絡。