20 years ago, actor Jack Ames (Gene Hackman) was having an affair with his co-star Catherine Sullivan (Susan Sarandon). When Catherine's husband Billy confronted Jack about the affair, Jack pushed Billy into an empty swimming pool, cracking his skull. Thinking he was dead, Jack called his friend, LAPD detective Raymond Hope (James Garner), to clean up the mess. When he arrived, Billy was still alive, so he killed him and buried the body. Jack had also called Catherine, so she knew the truth all along. When the missing Billy was legally declared dead, Jack and Catherine married.
In the present day, Harry Ross (Paul Newman), Raymond's former partner and also a friend of Jack and Catherine, finds Billy's body buried near the Ames' abandoned ranch house. The bullet hole in the back of his head proves that Billy's death wasn't a suicide, as it was originally reported. Harry later figures out that Raymond was on the take from Jack and had to be the killer. Harry eventually kills Raymond in a shootout inside Raymond's house.