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 become involved in a scandal that could jeopardize his position with the shareholders of the company of which he is an executive. The last definite place Crystal was known to have been was their vacation cabin on Little Fawn Lake. 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 Crystal was, Lavery told him that he hadn't seen her, wasn't with her in El Paso, didn't know where she was, and never agreed, or wanted, to marry her.
Marlowe begins his investigation with a visit to Chris Lavery in the corrupt neighboring town of Bay City (modeled on Santa Monica). Lavery disclaims any interest in or involvement with Crystal Kingsley. While watching Lavery's house, Marlowe is threatened by the police, who suspect him of watching Lavery's neighbor, Dr. Almore. A tough cop named Al Degarmo accuses Marlowe of harassing Almore. Marlowe discovers that Almore's wife died under suspicious circumstances and that her death was probably hushed up by the police.
Marlowe moves his investigations to Little Fawn Lake. Kingsley has given him a note to the caretaker of his vacation home, 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 a drowned body that Chess identifies as his wife, bloated from decomposition and almost unrecognizable except by her clothes and jewelry. Chess is immediately arrested for his wife's murder, and Marlowe, doubtful of Chess's guilt, returns to Los Angeles. Before he returns, Marlowe interviews some hotel employees who remember a woman matching Crystal's description and volunteer that a man was with her; their description of the man is similar to that of Lavery.
Marlowe returns to Bay City to re-interview Chris Lavery, given the new information from the hotel employees that contradicts his prior statement. At the house he finds Mrs. Fallbrook, who says she is the owner and has found a gun on the stairs. Once she has left, Marlowe ascertains that the gun has been fired six times and, after a search, finds Lavery murdered in the bathroom. Then he goes back to Kingsley, who offers him a fat bonus to prove Crystal didn't do it. Marlowe returns to Lavery's house, calls the police and reports the murder. Marlowe is interviewed by the police and is backhanded several times when he suggests that there was a cover-up of the death of Dr. Almore's wife.
Marlowe returns to his office, where he finds a note from Kingsley's secretary giving him the names and address of Almore's wife's parents. Marlowe visits them and learns the name and address of the detective they hired to investigate their daughter's death and that Dr. Almore's nurse was named Mildred Haviland. They also tell him that Almore is a "dope" doctor and that they believe he killed their daughter by drugging her and then putting her in the garage with the motor running on her car. The detective they hired was charged with drunk driving, spent 6 months in jail and is now not in contact with them. Marlowe visits the detective, who is not at his modest home, and is rebuffed by the detective's wife, who says that "they" have been there. Marlowe notices someone looking at his car and upon leaving realizes he is being followed.
He is confronted by the police again, who force him to drink liquor, beat him up and arrest him for speeding, resisting arrest and drunk driving, charges similar to those leveled against the parents' detective. Marlowe talks to a police captain, Webber, who treats him decently for a Bay City policeman, and although Webber isn't convinced by Marlowe's theories on the case, he is convinced that Marlowe is mostly telling him the truth, and he turns him loose.
Returning to his office, Marlowe receives a call from Kingsley who tells him that Crystal has called Kingsley's secretary, begging for $500. Kingsley gives the money to Marlowe to deliver. Marlowe is to wear a distinctive scarf so Crystal will recognize him, though she expects Kingsley. He gets to the rendezvous, a bar, where a Mexican boy enters to tell Marlowe that Crystal is waiting outside. Marlowe goes out, meets Crystal and insists that she answer his questions before receiving the money. Crystal agrees but only at a nearby apartment where she is staying. At the apartment, Marlowe who has recognized her as Mrs. Fallbrook, the woman he met in Lavery's house, accuses her of being the murderer of Lavery. She pulls a gun on him. As Marlowe is about to take the gun away, someone hits him from behind with a sap.
When Marlowe wakes up he is stinking with gin and Crystal is lying naked, bloody and strangled to death on the bed. Soon the Bay City police are banging on the door. Degarmo tries to frame Marlowe for the murder, but Marlowe convinces him that the two of them can more easily frame Kingsley. They travel to Little Fawn Lake together to get some evidence Marlowe implies is there.
In the final confrontation at Little Fawn Lake, Marlowe reveals that the murdered woman in Bay City, supposed to be Crystal Kingsley, was actually Mildred Haviland, killed in a jealous rage by Al Degarmo, who was her former husband, while the murdered woman in Little Fawn Lake, supposed to be Muriel Chess, was actually Crystal Kingsley, killed by Mildred Haviland, who then assumed her identity. Mildred, who had been Dr Almore's nurse, had murdered his wife and had also murdered Lavery.
Degarmo escapes but is killed when trying to cross a dam guarded by armed sentries under orders to shoot potential saboteurs who disregard commands to stop.