In the early 1980s, teenagers Martin Asher (Paul Dano) and Matt Soulsby (Justin Chatwin) meet on a bus to Mont-Laurier, Quebec. Seemingly uncertain of their ultimate destination, the two talk about their plans for the future. When their bus breaks down, the two acquire a car from a nearby garage. While Martin is driving, a tire blows. Matt struggles to change the tire and Martin comments on how he and Matt are both about the same height, and kicks Matt into the path of an oncoming truck, killing both him and the driver. Taking Matt's guitar and clothes, he walks away singing in a voice similar to Matt's.
Twenty years later, a successful FBI profiler, Illeana Scott (Angelina Jolie), is summoned to help out the authorities in Montreal in apprehending a serial killer who assumes the identies of his victims, enabling him to travel undetected across North America. Martin's mother Rebecca (Gena Rowlands) claims to have seen her son alive and well on a ferry to Quebec City, leading to the body believed to have belonged to him being exhumed for forensic examination, and he becomes the primary suspect. Illeana, who has difficulty adjusting to her new surroundings and is distrusted by her local colleagues, interviews art dealer James Costa (Ethan Hawke), an eyewitness who saw Asher kill his last victim. Costa makes a drawing of the killer and the authorities manage to track down the man's apartment, only to find a decaying corpse chained up in the ceiling. Illeana goes to Rebecca's house to question her about her son, and while snooping around discovers a hidden passageway behind a cabinet that leads to a secret room used to house young Martin, an unwanted and unstable younger child whom Rebecca neglected and saw as inferior to her elder son, whom Martin ultimately killed out of jealousy. Illeana is attacked by a hidden assailant, who escapes before she can identify him.
Illeana determines that Asher is targeting people whose lives hold something his current one lacks, and that his latest target is Costa after his apartment is broken into and ransacked. Costa is subsequently used in a sting operation to lure and apprehend Asher, but the operation fails and Costa angrily refuses to be used as bait. During a show at his gallery, Costa is attacked by an assailant (Kiefer Sutherland), whom Illeana tries to apprehend, but loses in the crowds after a foot chase outside. For his protection, the police decide to move Costa out of town, but the next morning Costa is confronted by the same assailant, who attacks him and demands to have "what he wants." Costa's police escort is killed when he tries to intervene, and the assailant takes Costa hostage with a gun and drives away. Illeana gives chase, and causes the car to crash and explode just as Costa manages to escape.
As Illeana is preparing to return home, Costa visits her in her hotel room. The two, having grown close over the course of the investigation, make passionate love on a chest of drawers and the bed, surrounded by gruesome crime scene photos. The next morning, Illeana awakes to find herself partly covered in Costa's blood. At first, she fears he is dead, but then he awakes, and they discover he had merely popped the stitches in his arm that he received after the auto accident.
As Costa's stitches are repaired in the hospital, Scott is called down to the morgue as Rebecca has come to identify the charred body of the assailant. She's unable to confirm the body as Martin, and Illeana realizes that Asher must still be alive. Shocked, Rebecca leaves the morgue, and goes to the elevator, as Illeana chases after her. Before she can reach her, the elevator door closes, and Costa confronts her, revealing himself as the real Martin Asher. Costa kills his mother, and Illeana sees him covered in blood just as the elevator door between them closes. The police try to capture Asher who escapes the hospital. Scott returns to her hotel room and frantically washes herself, in a state of manic disgust. An investigation shows that the man killed in the car accident, was actually Christopher Hart, a drug dealer and art thief to whom Asher owed $80,000, and whom Asher murdered. The police chase Asher, but he escapes in a train station and boards a train headed east of Montreal, meanwhile setting up his next victim, a sports talent scout. He calls Illeana on the phone and taunts her before hanging up and disappearing into the crowd of other passengers. Illeana admits to having consensual sex with Asher, and is consequently fired from the FBI.
Seven months later, Illeana is living in an desolate farmhouse by herself in Carlisle, Pennsylvania and looking heavily pregnant with Asher's twin boys. One day as she sits alone in her home, she discovers Asher has broken into her house. She frantically tries to escape, but Asher quickly overpowers her and then reveals he has found all the guns she had hidden throughout the house. Asher makes her tea and tells her they could start over and live together as a family, but a disgusted Illeana tells him she does not want to. Enraged, Asher begins beating and choking her and eventually stabs her in her belly with a pair of scissors. Illeana, seemingly unharmed by the stabbing, shocks Asher by quickly stabbing him in the heart with the same scissors. As Asher is on his knees looking at her in disbelief, Illeana removes a prosthetic pregnant belly, and tells him the past seven months have been a carefully planned trap. He falls over, dead, and Illeana calls her former Montreal colleague Inspector Leclair (Tchéky Karyo) to tell him that it's over.Angelina Jolie as Illeana ScottEthan Hawke as James Costa/Martin AsherPaul Dano as Young Martin AsherKiefer Sutherland as Christopher HartGena Rowlands as Mrs. Rebecca AsherOlivier Martinez as Detective Joseph PaquetteTchéky Karyo as Chief Inspector Hugo LeclairJean-Hugues Anglade as Detective Emil DuvalJustin Chatwin as Matt SoulsbyAndré Lacoste as CashierBilly Two Rivers as Car SalesmanRichard Lemire as Québec City CopJulien Poulin as Québec City InspectorMarie-Josée Croze as Medical ExaminerEmmanuel Bilodeau as DoctorChristian Tessier as Interrogation Officer
The film is based on the novel of the same title by Michael Pye. Numerous hands had a part in the screenplay as script doctors. The cover page of the screenplay credits Jon Bokenkamp with the original draft, Nicholas Kazan with subsequent revisions, Hilary Seitz with more revisions, and David Ayer with the last revisions (to February 28, 2003). The WGA screenwriting credit system ultimately awarded screenplay and adaptation credit to Bokenkamp alone.
The film has received mostly poor reviews, Rotten Tomatoes gives the film a score of 22% based on reviews from 157 critics. Film critic Roger Ebert gave it three out of four stars, describing it as "an effective thriller, on its modest but stylish level". Total Film, a UK film magazine, gave it two stars out of five with the verdict: "Starting off well but rapidly losing its way, Taking Lives is more serial-killer flick than serial killer -- we've been fed this mush a thousand times."
Angelina Jolie earned a Razzie Award nomination for Worst Actress for her performance in the movie (also for Alexander), but lost the trophy to Halle Berry for Catwoman.
Ethan Hawke called the film "terrible" but has stated that he enjoyed working with Angelina Jolie and she was also his best on-screen kisser.
Taking Lives grossed $32,682,342 in the United States and $65,470,529 worldwide.