Samantha Caine (Geena Davis) is a small-town schoolteacher, living with her boyfriend Hal (Tom Amandes) and her daughter Caitlin (Yvonne Zima). Eight years earlier, she was found washed ashore on a New Jersey beach, pregnant with Caitlin and totally amnesiatic. Having never remembered her real name, "Samantha" has hired a number of ineffective private investigators to discover her past, the latest being a lowlife named Mitch Henessey (Samuel L. Jackson). During the Christmas holidays, Samantha is involved in a car accident and suffers a brief concussion; when she recovers, she finds she possesses skills with a knife that she cannot explain. Shortly thereafter, the family home is broken into by "One-Eyed Jack" (Joseph McKenna), a convict who escaped from jail after seeing Samantha's face on television. Samantha demonstrates her fighting prowess by killing Jack bare-handed. Worried that she poses a danger to Hal and Caitlin, Samantha leaves with Mitch, who has found a suitcase belonging to her, to seek out answers.
The suitcase contains a note directing them to Dr. Nathan Waldman (Brian Cox). They arrange to meet at a train station, unaware that government agents are tapping the doctor's calls. En route, Samantha discovers the bottom of the suitcase contains a disassembled sniper rifle which she can expertly reassemble, along with other weapons. When Samantha and Mitch go to meet Waldman at the station, they are attacked by a team of agents who shoot numerous bystanders, but the two escape with Waldman's help. The doctor informs Samantha that she is really an expert CIA assassin, Charlene Elizabeth "Charly" Baltimore, who had disappeared eight years prior. Unsure if they can trust Waldman, Samantha and Mitch leave him behind and seek another contact named on a note in the suitcase, Luke (David Morse), believing he may be Caitlin's father.
Waldman catches up with them and tries to warn them that Luke is actually Charly's last assassination target, "Daedalus". However, Luke kills Dr. Waldman, then straps Samantha to a waterwheel and tortures her by repeatedly submerging her in cold water. After being tortured, she is finally jolted into remembering her past life. Samantha frees herself, kills Luke, and escapes with Mitch. Samantha completes her physical transformation back to Charly, cutting her hair and dying it platinum blonde. Charly realizes that her "Samantha Caine" personality was a cover to get near to Daedalus eight years earlier.