It's 1969 and a serial killer is on the loose. Having just murdered several people, the actions of the self-named Zodiac have drawn the obvious attention of San Francisco detective David Toschi (MARK RUFFALO) and his partner William Armstrong (ANTHONY EDWARDS).
It's also piqued the interest of those at the San Francisco Chronicle, particularly since Zodiac has sent the paper a letter warning that if they don't publish it, he'll kill again. Crime beat reporter Paul Avery (ROBERT DOWNEY JR.) immediately starts working the story, but rookie editorial cartoonist Robert Graysmith (JAKE GYLLENHAAL), who's fond of solving puzzles, also finds himself drawn to figuring out the killer's mysterious cipher sent along with the letter.
With the murders having occurred in various jurisdictions, David and William find their investigation complicated by having to deal with other police officers such as Sgt. Jack Mulanax (ELIAS KOTEAS), all while handwriting expert Sherwood Morrill (PHILIP BAKER HALL) examines Zodiac's penmanship and attorney Melvin Belli (BRIAN COX) interacts with the supposed killer in a televised interview.
While they deal with all of that as well as their captain, Marty Lee (DERMOT MULRONEY), Paul becomes obsessed with discovering Zodiac's real identity, a quest that rubs off on Robert who -- as the months and then years pass -- finds his relationship with new wife Melanie (CHLOE SEVIGNY) becoming ever more strained as his obsession intensifies.
Unable to pin the murders on pedophile Arthur Leigh Allen (JOHN CARROLL LYNCH), David similarly allows his obsession to overwhelm him. With the years passing by and the trail getting cold, the various men trying to solve the crime find their lives unraveling due to their actions.