The opening scene shows a car driven off the icy road.
Coleman Silk (Anthony Hopkins) is a professor who has revitalized Athena, a small New England college. During a class discussion he calls two missing students "spooks". He is accused of making a racist epithet, and quits. His resignation is too much for his wife (Phyllis Newman), who has a heart attack.
Convinced his wife was murdered by the college, Silk befriends a down-and-out writer named Nathan Zuckerman (Gary Sinese). Silk and Zuckerman work on a book describing the murder, and Zuckerman comes out of his shell. Eventually, Silk decides the book is not worth it. As he's cleaning up, Silk begins to reminice.
When he was in college as a student, the younger Silk (Wentworth Miller) falls in love with Steena Paulsson (Jacinda Barrett). We flash back to the present, and Silk admits he's having an affair with a much younger woman, Faunia Farley (Nicole Kidman). He gives her a lift home after being stranded, and she makes a pass at him. After some time together, she reveals that her stepfather molested her, and she left home at 14. Silk also finds out she has a crazy ex-husband, Lester (Ed Harris) who's stalking her. When he introduces her to Zuckerman, she gets angry, but they make up.
Lester shows up and tells Silk that Faunia was a bad mother and let her kids die in a fire. She still has their remains, and is troubled about what to do with them. Later, Silk gets a threatening letter, and his lawyer (Clark Gregg) compares him to Achilles, the Greek warrior who brought down Troy for the love of a woman. Silk immediately fires him.
We flash back to Silk as a youth, where his boxing instructor (Richard Mawe) wants him to fight for money. It is here we learn Silk is actually black, but since he is very light-skinned, he is often mistaken as a Jew. He sees him with his family, and his father (Harry Lennix) tells him he will be a doctor. His father's death forces Coleman to realize the inequity of race. While enlisting to the Navy, he marks himself as white.
Back with Zuckerman, Silk explodes when confronted with the rumors about him and Faunia. He tells Zuckerman that he's not afraid, and insinuates Zuckerman is a coward. Scenes interspersed between past and present show Silk with Steena and Faunia. When he brings Steena home to meet his mother, she is caught off-guard, and cannot accept his race. Coleman becomes a boxer, taking his aggression out on black opponents.
He takes Faunia to a classical concert, and finally gets her to stay all night, overcoming her fear of committment. She rages at him for making her feel for him and storms off. She feels guilty for surviving the fire that killed her kids, and confesses to a crow. When Silk returns home, she is back, and apologizes. In the moment, Silk confesses his secret.
Driving Faunia home, Lester Farley runs them off them road, and they both die. Lester tells his psychologist (Margo Martindale) that he didn't kill them, even though he planned to. His psychologist believes Lester is delusional.
At Coleman's funeral, his black coleague Herb (Ron Canada) finally admits he should have defended Coleman when he was fired. Zuckerman meets a woman, Ernestine (Lizan Mitchell), and she says that she is his Silk's sister. We flash back to Coleman telling his mother that he's getting married to a white woman, and doesn't want to be known as a Negro. His mother says he is trapped.
Ernestine tells Zuckerman about how Silk's family divorced him, and is amazed that Coleman didn't reveal his race when charged with racism. Zuckerman decides to write a book, and confronts Lester. His book is called The Human Stain.