1830년 웨스트포인트 육군사관학교. 겨울의 희뿌연 이른 아침, 한 생도가 죽은 채로 발견된다. 그런데 시신이 시체안치소로 옮겨진 후, 이 비극적 사건의 잔혹함이 드러나는데. 생도의 심장이 능숙한 솜씨로 제거되어 있었던 것. 신생 사관학교가 씻을 수 없는 오명을 입을 것을 우려한 학교장은 지역의 은퇴 형사 오거스터스 랜도어(크리스천 베일)에게 사건 해결을 의뢰한다. 하지만 생도들의 침묵 규약으로 수사에 진척이 없자, 랜도어는 사건 해결에 협조할 독자적인 성향의 인물을 따로 구하는데. 군대의 엄격함을 경멸하고 시를 사랑하는 특이한 생도인 그 인물은 바로 에드거 앨런 포(해리 멜링)였다.
Nick and Frank Starkey were both policemen. A scandal forced Nick to leave the force, now a serial killer has driven the police to take him back. A web that includes Frank's wife, bribery, and corruption all are in the background as Nick tries to uncover the secret of where the killer will strike next, and finally must lay a trap without the police.
정신분열증에 걸린 연쇄 살인범이 매 보름마다 가족을 살해하지만, 경찰과 FBI는 아무런 단서도 찾지 못한다. 윌 그레이엄은 과거에 이와 비슷한 사건을 저지른 한니발 박사를 체포한 경험 때문에 이를 맡게 된다. 윌은 박사에게 단서를 얻으려 하지만 실마리는 쉽게 발견되지 않는다. 감옥에 갇힌 한니발은 얌전한 프랜시스 달러하이드를 충동질해 살인을 교사하고, 그는 그 와중에 한 맹인 여성과 사랑에 빠지게 되는데...