An FBI specialist with a gift of thinking like killers tracks a serial killer who appears to select his victims at random. He recruits the help of another serial killer in the hope of catching him.
Synopsis (contains spoilers)
Will Graham (William Petersen) is a former FBI criminal profiler who has retired because of a breakdown after being attacked by the cannibalistic serial killer, Dr. Hannibal Lecktor (Brian Cox). Graham is approached at his Florida home by his former FBI superior Jack Crawford (Dennis Farina), who is seeking help with a new serial killer case. Promising his wife (Kim Greist) that he will do nothing more than examine evidence and not risk physical harm, Graham agrees to visit the most recent crime scene in Atlanta, where he tries to enter the mindset of the killer, dubbed the "Tooth Fairy" by the police for the bite-marks left on his victims. The Tooth Fairy has killed ten people in the space of a month.
Having found the killer's fingerprints, Graham meets with Crawford. They are accosted by tabloid journalist Freddy Lounds (Stephen Lang), with whom Graham has a bitter history. Lounds' paper had run photographs of Graham taken secretly while he was hospitalized. Graham pays a visit to Lecktor, a former psychiatrist, in his cell and asks for his insight into the killer's motivations. After a tense conversation, Lecktor agrees to look at the case file. Lecktor later contrives to obtain Graham's home address by deceit.
Graham travels to the first crime scene in Birmingham, Alabama, where he is contacted by Crawford, who tells him of Lounds' tabloid story on the case. Crawford also patches Graham through to Frederick Chilton (Benjamin Hendrickson), Lecktor's warden, who has found a note in Lecktor's personal effects. Reading it, they realize it is from the Tooth Fairy, expressing admiration for Lecktor and an interest in Graham. Crawford brings Graham to the FBI Academy at Quantico, where a missing section of the note is analyzed to determine what Lecktor has removed. It is found to be an instruction to communicate through the personals section of the National Tattler, Lounds' newspaper.
The FBI intended to plant a fake advertisement to replace Lecktor's, but they realize that without the proper book code the Tooth Fairy will know it is fake. So they let the advertisement run as it is, and Graham organizes an interview with Lounds, during which he gives a false and derogatory profile of the Tooth Fairy to incite him. After a sting operation fails to catch the killer, Lounds is kidnapped by the Tooth Fairy (Tom Noonan) and wakes up in the killer's home, where he is shown a slideshow of William Blake's The Great Red Dragon paintings, along with the Tooth Fairy's past victims and slides of a family the killer identifies as his next targets. Lounds is forced to tape-record a statement before being set on fire in a wheelchair and killed, his flaming body rolled into the parking garage of the National Tattler as a warning.
Graham is told by Crawford that they have cracked Lecktor's coded message to the Tooth Fairy; it is Graham's home address with an instruction to kill the family (ending with "Save yourself. Kill them all," revealing that Lecktor believes Graham would find the Tooth Fairy). Graham rushes home to find his family safe but terrified. After the FBI moves Graham's family to a safe house, he tries to explain to his son Kevin why he had retired previously. Meanwhile, the Tooth Fairy, revealed to be a St. Louis film processing technician named Francis Dollarhyde, approaches a blind co-worker, Reba McClane (Joan Allen) and ends up offering her a lift. They go to Dollarhyde's home, where Reba is oblivious to the fact that Dollarhyde is watching home-movie footage of his planned next victim. She kisses him and they make love. Dollarhyde is confused by this newfound relationship though it helps suppress his bloodlust. Just as Graham comes to realize how much the Tooth Fairy's desire for acceptance factors into the murders, Dollarhyde watches as Reba is escorted home by another co-worker. Mistakenly believing them to be kissing, Dollarhyde murders the man and abducts Reba. When she calls him Francis, he tells her: "Francis is gone. Forever."
Desperately trying to figure out a connection between the murdered families, Graham realizes that someone must have seen their home movies. He and Crawford deduce where the films were processed. They identify the lab in St. Louis and fly there immediately. Dollarhyde has been casing the victims' homes through home movies, enabling him to prepare for the break-ins in extreme detail. Graham determines which employee has seen these films and obtains Dollarhyde's home address, to which he and Crawford travel with a police escort. At Dollarhyde's home Reba is terrified as he contemplates what to do with her. As he struggles to kill Reba with a piece of broken mirror glass, police teams assemble around the house. Seeing that Dollarhyde has someone inside with him, Graham lunges through a window. He is quickly subdued by Dollarhyde, who retrieves a shotgun and uses it to wound Crawford and kill two police officers. Wounded in the firefight, Dollarhyde returns to the kitchen to shoot Graham, but misses because of his injuries and is killed himself when Graham returns fire. Graham, Reba, and Crawford are tended to by paramedics before Graham returns home and retires permanently.
- William Petersen as Will Graham. Richard Gere, Mel Gibson and Paul Newman were considered for the role, but Mann cast Petersen after seeing footage from To Live and Die in L.A. Petersen spent time with officers of the Chicago Police Department researching for his role.
- Kim Greist as Molly Graham. Greist, who according to reviews was "wasted in a tiny role", had previously worked with Mann on an episode of Miami Vice.
- Joan Allen as Reba McClane. In preparation for her role, Allen spent time with the New York Institute for the Blind, learning to walk through New York blindfolded. She had previously worked with co-star William Petersen on stage, in the 1980 Steppenwolf Theatre Company production of Balm in Gilead.
- Brian Cox as Dr. Hannibal Lecktor. Actors John Lithgow, Mandy Patinkin, and Brian Dennehy, and director William Friedkin were also considered for the part of Lecktor, whose name was changed from the novel's "Lecter" for unknown reasons. Cox based his performance on Scottish serial killer Peter Manuel. Cox was asked to audition with his back turned to the casting agents, as they felt they needed to focus on the power of his voice when considering him for the part.
- Dennis Farina as Jack Crawford. Farina had already worked with Mann before, making his acting début in the 1981 film Thief before appearing in Crime Story and several episodes of Miami Vice. Farina had already read the novel Red Dragon He was called to audition at the same time as Brian Cox.
- Tom Noonan as Francis Dollarhyde. Noonan credits his ability to improvise during rehearsals for his casting. He took up bodybuilding to prepare physically for the part. He began preparation for his role by studying other serial killers, but quickly rejected this approach. While shooting the film, Noonan remained in character at all times, keeping away from cast members playing his pursuers.
- Stephen Lang as Freddy Lounds. Lang had previously starred in Band of the Hand, on which Mann was executive producer. He went on to appear in the Mann-produced Crime Story with Farina and in Mann's 2009 film Template:'.
- Franky Faison as Lt. Fisk. Faison would later portray Barney Matthews in all three of the Hannibal movies starring Anthony Hopkins and therefore the only actor to appear in all four of the movies.
- Dan Butler as Jimmy Price. Butler would later portray Roden in The Silence of the Lambs and is one of two actors (with Faison) who appeared in both movies.