Derace Kingsley, a wealthy businessman, hires Marlowe to find his estranged wife Crystal. Although separated from his wife, Kingsley fears that Crystal - rich, pretty, spoiled and reckless - may have gotten herself into a scandal that could jeopardize his own position with the shareholders of the company he runs. The last definite place Crystal was known to have been was at a resort called Little Fawn Lake. And Kingsley had received a telegram from Crystal about two weeks before, (dateline El Paso Texas), stating that she was divorcing him and marrying her gigolo boyfriend, Chris Lavery. But when Kingsley ran into Lavery in L.A., and asked him "where's Crystal", Lavery tells him that he hasn't seen her, wasn't with her in El Paso, doesn't know where she is, and never agreed, or wanted, to marry her.
Marlowe begins his investigations at Little Fawn Lake. Kingsley has given him a note to the caretaker of his vacation home, one Bill Chess. Chess is in an alcoholic haze, depressed over having been abandoned by his wife Muriel, at about the same time as Crystal disappeared. As Marlowe and Chess walk over the property, they discover the drowned body of Chess' wife, bloated from decomposition and almost unrecognizable except by her clothes and jewelry. Chess is immediately arrested for his wife's murder, and Marlowe, although doubtful of his guilt, returns to Los Angeles.
In L.A. he travels to the corrupt neighboring town of Bay City (modeled on Santa Monica) to interview Chris Lavery, who appears to have some kind of guilty knowledge about Crystal but will not come clean. When departing from this interview a tough cop named Al Degarmo drives up and accuses Marlowe of harassing Lavery's neighbor, Dr. Almore. Eventually Marlowe discovers that Dr. Almore's wife had died under suspicious circumstances, that her death was hushed up by the police, and that Dr. Almore's mistress at the time was Mildred Haviland, the former spouse of Degarmo.
When Marlowe goes back to talk to Lavery again, he finds him murdered in his bathroom. A gun had been fired six times, two of the shots had hit him, and one was fatal. Mrs. Fallbrook, the owner of the rented house that Lavery lives in, confronts Marlowe on his way out, but Marlowe manages to scare her off without letting her discover the murder. Then he goes back to Kingsley, who offers him a fat bonus to prove Crystal didn't do it. But on the way out of Bay City he is confronted by the cops again, who force him to drink liquor and then beat him up and arrest him for drunk driving. Marlowe manages to convince the Bay City Chief of Police that he was framed, and is turned loose.
Now Kingsley tells him that he has received a phone call from Crystal, begging for $500. Marlowe is to deliver it. When he gets to the rendezvous, Marlowe insists that Crystal answer his questions before receiving the money. Marlowe recognizes her as being "Mrs. Fallbrook", the woman he met in Lavery's house, and accuses her of being the murderer of Lavery. She pulls a gun on him and someone hits Marlowe from behind with a blackjack.
When Marlowe wakes up he is stinking with gin and Crystal is lying naked, bloody and strangled to death on the bed. Marlowe attempts get mad to get away but is arrested by Degarmo, who wants Marlowe to help him convict Kingsley of the sex murder of Crystal (Kingsley's wife). Marlowe lets him think he can provide the evidence against Kingsley, but they must go to Little Fawn Lake to find it.
In the final confrontation at Little Fawn Lake, Marlowe reveals that the murder victim supposed to be Crystal (in LA) was actually Mildred Haviland, AKA Muriel Chess and was killed by Degarmo (her former husband) in a jealous rage; and the murder victim supposed to be Muriel (at Little Fawn Lake) was actually Crystal Kingsley, and she was killed by Mildred Haviland for revenge and profit, the murderer assuming the identity of her victim. Mildred is shown to also be the murderer of Lavery. Degarmo - who strangled Mildred - attempts to flee, but is killed while trying to escape.