1986년 경기도. 젊은 여인이 무참히 강간, 살해 당한 시체로 발견된다. 2개월 후, 비슷한 수법의 강간살인사건이 연이어 발생하면서 사건은 세간의 주목을 받기 시작하고, 일대는 연쇄살인이라는 생소한 범죄의 공포에 휩싸인다. 사건발생지역에 특별수사본부가 설치되고, 수사본부는 구희봉 반장 (변희봉 역)을 필두로 지역토박이 형사 박두만(송강호 역)과 조용구(김뢰하 역), 그리고 서울 시경에서 자원해 온 서태윤 (김상경 역)이 배치된다.
육감으로 대표되는 박두만은 동네 양아치들을 족치며 자백을 강요하고, 서태윤은 사건 서류를 꼼꼼히 검토하며 사건의 실마리를 찾아 가지만 스타일이 다른 두 사람은 처음부터 팽팽한 신경전을 벌인다. 용의자가 검거되고 사건의 끝이 보일 듯 하더니, 매스컴이 몰려든 현장 검증에서 용의자가 범행 사실을 부인하면서 현장은 아수라장이 되고, 구반장은 파면 당한다.
수사진이 아연실색할 정도로 범인은 자신의 흔적을 남기지 않는다. 살해하거나 결박할 때도 모두 피해자가 착용했거나 사용하는 물품을 이용한다. 심지어 강간살인의 경우, 대부분 피살자의 몸에 떨어져 있기 마련인 범인의 음모조차 단 하나도 발견 되지 않는다.
후임으로 신동철 반장 (송재호 역)이 부임하면서 수사는 활기를 띠기 시작한다. 박두만은 현장에 털 한 오라기 남기지 않는다는 점에 착안, 근처의 절과 목욕탕을 뒤지며 무모증인 사람을 찾아 나서고, 사건 파일을 검토하던 서태윤은 비오는 날, 빨간 옷을 입은 여자가 범행대상이라는 공통점을 밝혀낸다.