New York City police detective Mark McPherson (Dana Andrews) is investigating the murder of a beautiful and highly successful advertising executive, Laura Hunt (Gene Tierney). Laura has apparently been killed by a shotgun blast to the face, just inside the doorway of her apartment.
He first interviews charismatic newspaper columnist Waldo Lydecker (Clifton Webb), an imperious, effete dandy, who relates how he met Laura and became her mentor. She had become his platonic friend and steady companion and he used his considerable fame, influence, and connections to advance her career.
McPherson also questions Laura's parasitic playboy fiancé, Shelby Carpenter (Vincent Price), a "kept man" and companion of her wealthy socialite aunt, Ann Treadwell (Judith Anderson). Treadwell is tolerant of her niece's infatuation with Shelby, which appears to be out of her practical acceptance of Shelby's need for the affection of a woman who is his own age. All the while, Treadwell is carrying on with Carpenter and giving him money. Detective McPherson finally questions Laura's loyal housekeeper, Bessie Clary (Dorothy Adams).
Through the testimony of her friends, and the reading of her letters and diary, McPherson becomes obsessed with Laura, so much so that Lydecker finally accuses him of falling in love with the dead woman. He also learns that Lydecker was jealous of Laura's suitors, using his newspaper column and influence to keep them at bay.
One night, the detective falls asleep in Laura's apartment, under her portrait, and is awakened by the sound of someone entering the apartment. He is shocked to discover it is Laura, who finds a dress in her closet belonging to one of her models, Diane Redfern. McPherson concludes that Redfern was the victim, brought there by Carpenter, while Laura was away in the country. Now it becomes even more urgent to unmask the murderer.
A party is thrown to welcome Laura's return. At the party, McPherson arrests Laura for the murder of Diane Redfern. Upon questioning her, he is convinced that she is innocent and that she does not love Shelby. He goes to search Lydecker's apartment, where he becomes suspicious of a clock that is identical to the one in Laura's apartment. On closer examination he finds a secret compartment.
McPherson returns to Laura's apartment. Lydecker is there and it is apparent that there is a growing bond between Laura and the detective. Lydecker insults McPherson and is sent away by Laura, but pauses on the stairwell outside. McPherson examines Laura's clock and finds the shotgun that killed Diane. Laura is confronted with the truth that Lydecker was the murderer. McPherson locks Laura into her apartment, warning her to admit no one. After he has left, Lydecker emerges from another room and attempts to kill Laura, claiming that if he cannot have her, no one can. He is shot down by McPherson's sergeant, who had told McPherson that Lydecker had never left the building, causing the two policemen to return to the apartment. Lydecker's last words are: "Goodbye, Laura. Goodbye, my love."