2004年,陈永仁(梁朝伟饰)被杀后两年,刘建明(刘德华饰)被警队内部调查,架空职权,被派无关重要的庶务工作。与妻子MARY的婚姻破裂,连与一岁女儿见面的机会也没有。身心俱疲的刘建明,每日的生活虽像走向地狱一样,但他相信坚持就会扭转局面。这时,年轻警司杨锦荣(黎明饰)凭着一页页丰功伟绩,以不到四十之龄,正迈向警队最高层;刘建明看在眼里,好像看见以前的自己。一次机缘,刘建明与杨锦荣结为好友,却发现杨锦荣神秘的一面,他推测杨锦荣可能和自己一样,都是黑帮派入警队的卧底。决定重新做人的刘建明暗中追查杨锦荣身世之谜,千辛万苦找到一个又一个证据,可是每次最接近真相的时候,总是功亏一篑,还引来警队高层对刘建明的极度不满。渐渐,刘建明觉得杨锦荣根本毫无可疑,渐渐开始怀疑自己。2001年,陈永仁跟随韩琛(曾志伟饰)已有两年时间,可是韩琛根本从来不会轻易相信任何人,只派一些鸡毛蒜皮的工作给他。为了得到信任,陈永仁不惜以身试法,上司黄志诚(黄秋生饰)发觉他已渐失控,千方百计要拉陈永仁出局,两人之间势成水火。陈永仁也渐渐迷失了自己,直至遇上李心儿(陈慧琳饰)。
因为一次严重的暴力罪行,陈永仁被判进行心理辅导,在催眠治疗期间,陈永仁梦中泄露了真正身份,李心儿半信半疑间,对陈永仁发生了兴趣。韩琛又派下一个任务,陈永仁知这是最后一个机会,为了得到韩琛最终的信任,陈永仁决定背叛黄SIR,大开杀戒。
早前有传郑秀文在电影《无间道》中要求多多,除片酬高外,更指定御用化妆师、发型师及服装指导,以致由女主角沦为配角。有关郑秀文的种种不利传闻,导演刘伟强挺身为她澄清,力证她是片中女主角,并透露日前郑秀文已完成片中饰演刘德华女友的戏份。
刘伟强说:“完全没有这回事!整部戏的造型指导是利嘉碧,而Sammi(郑秀文的英文名)都是用戏中的化妆师同发型师。至于说她要求加戏分,其实一开始我已经属意Sammi同Kelly(陈慧琳的英文名)两人任女主角,也都同她们讲过这部戏是男人戏,她同Kelly都不会有太多戏份,她也很明白的。”刘伟强强调,由筹拍《无》片第一日开始,已敲定郑秀文和陈慧琳在片中分别饰演刘德华女友和梁朝伟的心理医生角色,同样是一至两日戏份;只是“寰亚”和他及另一导演麦兆辉商量过后,认为没必要过早去宣布女主角名字,始终此片乃男性电影,以刘德华和梁朝伟的戏份为主,故外界便对未公开的事作了许多不实的揣测。
对于有传郑秀文狮子大开口,5天戏收200万元片酬,刘伟强回应说:“到现在我都没同Sammi谈过片酬,连我都没有知道要多少钱,这个传闻只是笑料一则。”至于不利传闻令郑秀文感到不快,刘伟强认为困扰一定有,但没有影响拍摄进度。他说:“Sammi很专业,她拍戏时很开心,完全没受影响。”