High school teacher and writer Frannie Avery (Meg Ryan) unexpectedly crosses paths with a student at a local bar. During her visit to the bathroom, she is shocked to witness a woman engaged in an intimate act with a man. A few days later, Detective Giovanni Malloy (Mark Ruffalo) arrives to question Frannie as part of his investigation into the horrific murder of a young woman, whose severed limb was chillingly discovered in her garden. Despite the macabre circumstances that brought them together, a flirtation sparks between them, leading to another meeting at the same bar.
Frannie finds herself both drawn to and frightened by the detective's overt sexual assertiveness, all while grappling with her growing discontent towards the crude behaviors displayed by other men around her, including Malloy’s partner, Richard Rodriguez (Nick Damici). As Malloy defends his troubled partner, who has lost his ability to carry a gun due to personal troubles, he assures Frannie that he will never harm her. However, after an abrupt parting, she becomes the victim of an assault while walking home. In a moment of desperation, she calls Malloy, and their passionate affair ignites that very night.
Frannie’s worries deepen when she recognizes a tattoo on Malloy that connects him to the man she saw in the bar's basement. Seeking guidance, she turns to her sister Pauline (Jennifer Jason Leigh), asking if she could trust a man with such a history. Although Pauline responds affirmatively, Frannie remains skeptical. She learns that she and the first murder victim were at the same bar the night of the crime, raising alarming doubts about Malloy’s innocence, especially after another body is discovered.
Determined to confront her fears, Frannie joins Malloy in a secluded spot by the water, where he unnervingly fires at floating garbage bags and insists she learn how to shoot. To her astonishment, she takes aim and shoots with precision, before they return to the city. However, upon arriving home, she is met with a shocking discovery: her old boyfriend has invaded her personal space. In distress, she seeks refuge at her sister’s apartment, only to find the door ajar and Pauline’s mutilated body awaiting her.
Fear grips Frannie as her doubt in Malloy grows, leading her to retreat home for consolation in alcohol. A fleeting encounter nearly leads her into bed with a student, but she quickly ejects him. Observing from outside, Malloy's partner witnesses the situation, prompting Frannie to shout warnings about Malloy's lingering presence in her life. Despite her fears, he arrives to help her regain composure, leaving her torn between trust and suspicion. In a reckless moment, she cuffs him to a pipe, yielding to desire, but after they share an intimacy, she discovers the missing charms from her bracelet in his jacket. This revelation sends her reeling, as she recalls witnessing his tattoo in the bar's basement.
Frannie confronts Malloy with the information, which sends him into a storm of rage as she dashes into Rodriguez's arms. Rodriguez then drives her to the GW bridge, claiming it as his fishing spot. With tension rising, he reveals his own tattoo, identical to Malloy's, leading her to understand the gravity of the betrayal she’s been entrapped in. In a harrowing struggle for survival, she manages to shoot Rodriguez, but not without a fierce confrontation. Bloodied and battered, she finally makes her way back to her apartment, collapsing into the arms of the weary yet innocent Malloy, still shackled to the pipe she left him at.