New York City police detective Mark McPherson (Dana Andrews) is investigating the murder of beautiful, and highly successful, advertising executive, Laura Hunt (Gene Tierney). Laura has been killed by a shotgun blast to the face, just inside the doorway to her apartment, before the start of the film. He interviews charismatic newspaper columnist Waldo Lydecker (Clifton Webb), an imperious, decadent dandy, who relates how he met Laura, became her mentor, and used his considerable influence and fame to advance her career. McPherson also questions Laura's parasitic playboy fiancÚ, Shelby Carpenter (Vincent Price), her wealthy socialite aunt, Ann Treadwell (Judith Anderson), who'd been carrying on with Carpenter and giving him money, and her loyal housekeeper, Bessie Clary (Dorothy Adams). Through the testimony of her friends, and the reading of her letters and diary, McPherson comes to know Laura and slowly becomes obsessed with her, so much so Lydecker 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. Laura finds a dress in her closet belonging to one of her models, Diane Redfern. McPherson concludes that she, Diane 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 Diana Redfern. Upon questioning her, he is convinced of her innocence and that she does not love Shelby. He returns her to her apartment, and then goes to search Lydecker's apartment.
There he finds a clock that is identical to the one in Laura's apartment. On closer examination he finds a secret compartment. He returns to Laura's apartment. Lydecker is there and it is apparent there is a growing bond between Laura and the detective. Lydecker insults McPherson and is sent away by Laura.
After Lydecker has left, McPherson examines Laura's clock and finds the shot gun that killed Diane. Laura is confronted with the truth that Lydecker was the murderer. McPherson locks Laura in to her apartment, warning her not to let any one in. After he has left, Lydecker gains access to the apartment. Lydecker attempts to kill Laura, claiming 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. ".