Retired FBI Special Agent Joel Campbell (James Spader) lives in Chicago, where he is struggling to come to terms with his failure to capture a serial killer back when he was working in Los Angeles. Campbell attends therapy sessions with Dr. Polly Beilman (Marisa Tomei), but otherwise has no other friends or social life.
Campbell learns that a girl who lived in his apartment building has been killed. He does not pay it much attention until he opens his mail and finds that a picture of the girl had been sent to his apartment three days before the murder. He brings this information to the attention of the detective on the case, Det. Mackie (Chris Ellis), and comes to the conclusion that the same serial killer has arrived in Chicago. FBI Special Agent in Charge Ibby (Ernie Hudson) tries to persuade Campbell to return to the case, but he refuses.
One night Campbell receives a phone call from David Griffin (Keanu Reeves), the serial killer, who reveals that he followed Campbell to Chicago and wants to rebuild the "rapport" they once had. Griffin tells Campbell that he will send a photo of a girl in the morning, and Campbell has until 9.00 at night to find her. Campbell tells Ibby that he wants back in on the case, and his request is granted.
Campbell works together with Mackie and the rest of the team in getting the word out on finding the girl before the deadline. However, by the time Campbell gets her house number and calls, Griffin is already there, and has strangled her to death. Griffin suggests they continue with a different girl. The next day similar events follow as Campbell and his team try to find the next girl before the 9:00 pm deadline. They corner and almost catch Griffin, but he manages not only to kill the second girl but also escape. Campbell is injured during the car chase.
The next day, another photo arrives, but it turns out to be the image of Lisa Anton (Yvonne Niami), Campbell's former lover who was killed indirectly because of Griffin back in Los Angeles. Campbell goes to Lisa's grave, where Griffin is waiting for him. Griffin explains that he has Beilman hostage somewhere, and only wants to talk with him. Campbell negotiates for Beilman's safety, and Griffin eventually agrees to bring Campbell to see her. During the drive, Griffin explains that he cares a great deal for Campbell, and considers him a "good friend". Campbell secretly uses his cell phone to call Mackie, cluing him in on the situation.
Griffin and Campbell arrive at an abandoned warehouse, where inside Beilman has been tied up and gagged and surrounded by flammable materials and candles. The two men face off as the police arrive outside. The struggle culminates with the place catching fire. Campbell unties Beilman and gets them both to safety before the place explodes, killing Griffin.