Allison "Allie" Jones (Bridget Fonda) is a software designer in New York City, engaged to Sam Rawson (Steven Weber). In the middle of the night, Sam's ex-wife calls, and it is revealed that he slept with her recently. A hurt and angry Allie throws Sam out, breaking off their engagement, and is comforted by neighbor Graham Knox (Peter Friedman), an aspiring actor. The next morning she attends a business lunch with Mitchell Myerson (Stephen Tobolowsky), a fashion house owner who is looking to buy Allie's revolutionary new program. He manipulates her into significantly reducing the cost, on the basis that his recommendations within the industry will be her future business. As he is her first and only client, she accepts.
Allie advertises for a new roommate to share her apartment in the Ansonia. She eventually settles on Hedra Carlson (Jennifer Jason Leigh), whom she nicknames "Hedy", and they become friends. Hedy tells of how she was supposed to be a twin but her twin was stillborn, leaving her with a constant feeling of loneliness. After a few weeks, however, Hedy becomes overly protective of Allie by erasing Sam's voice-mail asking Allie for a reconciliation. Later she buys a puppy that she names Buddy to bond with Allie. Hedy soon becomes jealous and upset when Sam is able to win Allie back.
Allie and Sam seek a new apartment for themselves. On their way back to Allie and Hedy's apartment, Allie is horrified to see that Buddy has fallen to his death from the balcony. Angry and upset, she accuses Hedy of leaving the window open resulting in the puppy's death. However that night while comforting a distraught Hedy, Sam tells her that "if anyone's to blame, it's my fault."
Myerson attempts to rape Allie on completion of their deal, insinuating that if she does not submit to him, he will warn off future clients and not pay her. She fights back and escapes.
To help Allie feel better, Hedy takes her to the salon for a haircut. When Allie is done, Hedy appears on the stairs dressed exactly like her including her haircut, which unnerves Allie. Later that night, Allie follows Hedy to an underground nightclub and witnesses Hedy passing herself off as Allie. Later while Hedy is taking a shower, Allie finds a shoebox containing letters addressed to Ellen Besch (Hedy's real name) as well as Sam's letter and a newspaper clipping on the accidental drowning of Hedy's twin sister when she was nine.
That night while Allie tells Graham the truth about Hedy, they are unaware that Hedy is listening back in their apartment. When Allie leaves, Hedy goes up to the apartment and attacks Graham.
When Sam returns the following night, Hedy again impersonates Allie and performs oral sex on him. After the act, Hedy begs Sam to leave Allie alone, but Sam refuses and insists on telling Allie the truth. Furious, Hedy kills him, gouging his eye with her stiletto heel.
The next day Hedy tells Allie she is about to leave. Later Allie sees a news report on Sam's death, realizes what has happened and tries to leave. Hedy takes Allie hostage at gunpoint. She states that everyone will assume Allie killed Sam since both Hedy and Allie resemble each other. In order to "protect" Allie, Hedy convinces her that they must run away. When Hedy leaves, Allie attempts to send a distress message, but Hedy catches her and angrily confronts her.
Myerson in the meantime notices his files being erased and rushes off to find Allie. He finds her tied up on the floor, but is attacked and killed by Hedy. Hedy attempts to persuade Allie to commit suicide, but Allie instead smashes the water glass in Hedy's face. The women struggle for the gun which Hedy points at Allie as she tries to run, begging Allie not to leave her. Allie coldly tells her, "I'm not like your sister, Hedy. Not anymore. I'm like you now." Graham regains consciousness and tries to assist Allie but the enraged Hedy refuses to give up. Allie drags Hedy off her friend, flees and is shot in the shoulder by Hedy.
A chase ensues from Graham's apartment to the elevator where Hedy chokes Allie unconscious and drags her towards the furnace. When Hedy finds Allie missing, she grabs a hook from a closet and screams for Allie to come out. Lured into thinking Allie is hiding in another closet, Hedy lashes out at a mirror inside. She is then stabbed in the back by Allie and they struggle briefly before Allie strikes one last blow. She then watches in horror and sadness as Hedy dies.
In an epilogue, Allie narrates that she has finally moved on. She forgives Hedy for killing Sam, and keeps trying to forgive herself for Hedy. She states that Hedy's survivor's guilt was her downfall. Allie states that she knows what happens to those people. The final shot is a photo of her and Hedy's faces superimposed as one.

Question: Why does Hedy kill Sam?
Answer: Sam threatens to tell Allie the truth about Hedy impersonating her to perform oral sex on him.
Alternative answer: He refused to leave Allie