劉建明(劉德華)在陳永仁(梁朝偉)被殺10個月后接受警隊內部調查,被架空職權,加上家庭的變故,他的精神狀態每況愈下,但他堅信局面很快就會扭轉。年輕警司楊錦榮(黎明)在同事看來是怪人一個,他正憑著過人的業績邁向警隊最高層。為了搞清楚楊錦榮的真實身份,劉建明開始對其調查。劉建明漸漸發現韓琛舊日的生意拍檔沈澄(陳道明)與楊錦榮有著千絲萬縷的關系,為了置楊錦榮于死地,也為了不讓自己的身份曝光,渴望做個好人已久的劉建明開始千辛萬苦地找尋一個又一個證據,可是他總在最接近真相時功虧一簣。隨著調查深入,楊錦榮真實身份被證實為大陸公安臥底(代號"獵鷹"),其調查行動實為執行跨境反腐任務。劉建明因長期精神高壓出現幻覺,在錯殺沈澄后被楊錦榮識破臥底身份,最終導致其家庭徹底破裂并走向精神崩潰。電影結尾揭示陳永仁死亡真相與楊錦榮臥底身份存在因果關聯,而劉建明在警隊辦公室的自白與陳永仁生前獨白形成時空呼應,暗示警方系統內部滲透問題的復雜性。