他曾經錯信一個犯了偷竊罪而以為會憣然改過的十二歲男孩,沒想到取得活路的男孩在飯菜裡下藥毒死了自己的養父母,看著有養育之恩的養父母吐血而亡的眼神只有冷漠與無情,從此他--徐百九(金城武飾)堅信,法不能容情,犯過錯或犯過法的人,一輩子的生活都在考驗法律情理。從此他,成了「性格決定論」的信徒,一個相信法的完美主義者,而相信人性就是對理想的善良無辜的背叛。
身為捕快,他有敏銳的觀察力和深厚的專業能力,使得他能在命案現場的蛛絲馬跡中準確推斷出令死者致死的原因與兇手的作案過程與手法,成功破案的成績更加深了他對自己的判斷能力以及只有審判方能還人清白的信念。
當他在劉家莊發現兩名搶匪死者其實乃為武林高手所殺後,心裡首先浮起的三名嫌疑犯,都是手法凶殘毫無人性的惡煞,這第一個推斷已在他心中成了定見:無論凶手是那三名嫌犯或另有他人,劉家莊命案都一定是一個嗜殺者所為,這名嗜殺者非受到法律審判不可,否則他製造的凶案將不斷發生。他的正義感啟動了全身的偵查神經,最後終於推敲出殺了兩名搶匪而受到全村村民愛戴的劉金喜(甄子丹飾),乃是七十二地煞的二當家唐龍,並在十年前犯案殘殺了一屠戶全家。即便他在劉家莊親眼見到劉金喜隱姓埋名定居在一個沒有絲毫腥風血雨味道的鄉下小地方,刻意隱藏自己高深的武功,像個正常人一樣結婚成家,在家人圍繞時露出滿足的微笑,最後逼不得已把十年來努力要忘記的過去向他提起,吐露內心的渴望(「我知道如果要抹掉過去,就一定要離開家鄉重新來過。我要做劉金喜,我差一點點就可以了。」)並懇求他離開,這些都無法讓徐百九的心思和眼光稍稍從抹上了正義感與理想化的眼鏡後面移開,無法讓他相信人性有任何一點點改變的可能。他一心想證明自己的正確,因此他拿起鐮刀趁劉金喜不備時砍了他一刀。劉金喜甘心受他一刀,也沒讓他醒悟劉金喜想做正常人的決心。他決定返回縣城申請牌票捉拿劉金喜,但卻讓劉金喜誤信他不會再返回劉家莊,以為他同意讓兩個搶匪在劉家莊攪起的漣漪平復下來。
劉金喜帶他走一條通到最近的城市(鳳城)的捷徑,捷徑在劉金喜看來是一片綠意盎然清靜的小樹林,但徐百九一路上都在疑心劉金喜要殺他滅口而對眼前的樹林戒慎恐懼步步為營,分手時劉金喜給了他一個兄弟般的祝福的擁抱,指點他接下來的路怎麼走,但在劉金喜的擁抱中,徐百九卻以一顆待死的心等著劉金喜痛下殺手。所有美好的事物、溫暖的情感,都被徐百九的成見扭曲,阻礙他的心去真正感受,因此繼他的感官之後,他的心也被封鎖了。
回到了縣城,就算班頭勸他收手,就算衙門明白告訴他唐龍不是通緝犯(意為捉捕唐龍於法無據)、就算傾家盪產,就算向他最不想求的妻子借錢,也都沒能阻止他申請牌票捉拿唐龍的決心。在向妻子借錢時,觀眾看見了他的理想與完美主義所造成的悲劇:他抓到岳父賣假藥的證據,不顧岳父下跪求饒也要將岳父送到衙門,最後岳父自殺身亡,他與妻子也就此離異。姑且不論他岳父賣假藥應受什麼樣的懲罰,也不論岳父自殺的行為是否可取,不論徐百九的堅持多麼正義凜然,徐百九為了對得起自己的理想(犯了法就該抓)而毀了一個家庭,卻是不爭的事實。儘管他不敢或不願面對妻子哀怨的眼神,卻仍不忘問妻子是否還怪他是否原諒他,其實說明他內心深處依然認為:檢舉岳父而對妻子與岳父造成的傷害,都不如違背自己的原則與理想來得嚴重。他需要的不是妻子的原諒,而是正義與理想的背書。
最後看似他幫助唐龍/劉金喜擺脫了七十二地煞的牢籠,但卻也賠上了自己的性命。他幫助唐龍假死躲過七十二地煞的追殺,在唐龍義父的罩門上插針最後使唐龍義父致命,都是想再一次證明或完成自己的理想:就算最後的結果可能都是一死,也要讓殺人犯唐龍成功地受審。吐血而死的那一刻,不知道他的心情是什麼:從自己的理想與完美主義中解脫的輕鬆,還是對有生之年因不信人性而造成的遺憾感到懊悔,或者帶著對人性的重新認識而感到無憾,又或者感到被「性格決定論」背叛的不甘?闔眼的那一刻,雨水模糊了他的視線,卻也洗掉了眼鏡上那一層不容任何瑕疵的正義與理想。他應該是百感交集的吧!如果有機會重來,他還會做一樣的決定嗎?他能回答自己的問題:「到底法是不是真的比人重要」嗎?