The novel opens with a prologue that doubles as a flash-forward. A warehouse worker named Charlie Stepanek finishes a late shift in Pittsburgh and discovers his car has been sabotaged and the nearby phone booth out of order. Two young men in a battered black car, Julian and Paul, offer him a ride and give him soup laced with a dissociative sedative. As Charlie loses control of his body, he realizes the boys already know his name, though he never told them. Julian ties his wrists, and Paul tells Charlie they have researched him and know exactly what he is. They drive the incapacitated man into the dark.
The narrative returns to the beginning. Paul Fleischer is a sixteen-year-old college freshman and biology major living with his mother Ruth, older sister Audrey, and younger sister Laurie. His father, Jakob, a police officer and German-Jewish immigrant, died by suicide roughly a year earlier. Paul is grieving and isolated, keeping a journal of self-improvement projects. His grandparents, Maurice and Flora Krakovsky, former labor activists, provide what stability they can.
In their college Ethics seminar, Paul argues passionately about failures of scientific conscience, citing the Tuskegee syphilis experiments. Julian Fromme, a psychology major from a wealthy family, supports Paul's position. After class Julian pursues Paul, lends him books by the philosopher Hannah Arendt and Friedrich Nietzsche, and draws Paul into his orbit. Julian is charismatic, intellectually voracious, and effortlessly graceful; Paul is immediately infatuated. Julian gives Paul the nickname "Pablo," and they become inseparable.
Julian charms Paul's family, filling the silence left by Jakob's death. Paul's mother welcomes Julian warmly, while Audrey privately warns he seems like trouble. Paul's grandparents grow concerned; his grandfather tells Ruth that Paul's feelings for Julian will not disappear on their own. When the class watches a film about the Milgram obedience experiment, in which subjects administered what they believed were dangerous electric shocks simply because a researcher told them to, Paul erupts at classmates who sympathize with the obedient subjects. He storms out, and Julian follows. They share bourbon by the river. Julian performs impressions of their classmates, then reluctantly imitates Paul, exposing his vulnerability with painful accuracy. Paul smashes the windows of an abandoned slaughterhouse in a cathartic rage and collapses in grief. Soon after, he goes to Julian's dorm and kisses him for the first time. He discovers Julian's massive scar from a childhood car accident, a tree-shaped mark from sternum to hip that left one lung filled with dead tissue.
On their last day before Julian leaves for the summer, Paul takes him hiking. After catching a butterfly, Paul admits he kills them because they are beautiful and it is the only way to keep them. Julian, electrified, goads Paul into hitting him. Paul obliges and cannot stop, beating Julian and forcing himself on Julian sexually while Julian lies passive. Afterward Paul is consumed by guilt, but Julian thanks him for the trust the violence represents.
Julian spends the summer with his parents in Maryland, where his father works at the State Department. His letters are affectionate but evasive. When Paul's great-grandmother dies, Julian urgently asks Paul to visit. Paul skips the funeral and flies to Maryland, discovering that Julian invited him without his parents' knowledge. Julian's father tries to bribe Paul to leave; Julian's mother, Delphine, tells Paul he is merely a weapon Julian uses to spite them. That night, Paul and Julian fantasize about burning down the house, killing Julian's parents, and escaping together. The next morning Julian packs and leaves with Paul, permanently breaking from his family. On the drive back, Paul realizes the fantasy revealed a truth: They can only be permanently bound through an irreversible act.
In Pittsburgh, Julian rents a cheap apartment and works at the campus library. He and Paul begin inventing hypothetical methods of murder as a shared intellectual game, and the exercise gradually escalates from absurd scenarios to practical ones. When Julian presents Brady, an upperclassman from their Ethics seminar, as a real target, Paul rejects the idea because their known animosity would constitute a motive. Paul insists the victim must be a stranger whose moral failings they can verify.
Paul combs newspaper archives and finds Charlie Stepanek, a Vietnam veteran who testified at his commanding officer's war crimes trial and told a reporter that atrocities were common and unremarkable. Stepanek embodies the unquestioning complicity Paul despises. Paul steals a dissociative anesthetic from the university biology supply room, calculating the dosage from a formula he learned in a wildlife ecology practicum. Julian discovers a remote, abandoned freight bridge over the Monongahela River. They conduct a full dry run two weeks before Thanksgiving, collecting alibi receipts and rehearsing every step.
On the night before Thanksgiving, they execute the plan. Using a separate, untraceable car, they sabotage Stepanek's vehicle, offer him a ride, and drug his soup. A brief chapter from Stepanek's drugged perspective shows him fighting to free his wrists and managing to run. Paul catches him and strikes him with a baseball bat. They carry the body to the bridge and throw it into the river.
The body surfaces far sooner than expected because Stepanek was likely dead before entering the water and his lungs never filled. Detective Anthony Benton, who knew Paul's father, visits the university to investigate the sedative theft. The investigation accelerates when Julian secretly returns to Stepanek's apartment to rescue his dog and is spotted by police. Julian's compassion for the animal unravels the alibi Paul carefully constructed. As the pressure mounts, Julian turns on Paul, telling him he should never have let Paul convince him the murder was necessary and that watching Paul's calm pleasure during the killing horrified him.
On New Year's Day, police arrest Paul at his home. In the interrogation room, Benton argues that Julian manipulated Paul and that all the concrete evidence points only to Paul. Paul invokes his right to counsel. A lawyer who was a friend of Paul's father argues the case lacks sufficient physical evidence, and the prosecutor cannot secure an indictment. Paul and Julian are released.
Paul's family discovers his journal and Julian's letters and confines him to the house. He and Julian exchange secret notes during Paul's supervised morning runs, ostensibly planning to flee to Canada. But Paul has concluded that they cannot survive apart or together and that the only resolution is a shared death. He sneaks out before dawn, meets Julian, and they drive to the same forest preserve where Paul once took Julian hiking.
Paul leads Julian toward a deep, concealed ravine, intending to push them both over the edge. Julian realizes what is happening and runs. Paul catches him and pins him down, placing his hands on Julian's throat. Julian begs for his life. Paul recalls the brutality of Stepanek's death and recognizes that what he called justice was monstrosity. He kisses Julian's forehead and lets him go. Julian flees.
Paul returns home by bus to find his family has read his journal. Audrey and his grandfather drive him to Julian's apartment, where they find the door open and the rooms abandoned. On the table Julian has left an envelope containing a photograph of the two of them under the canopy of leaves at the bridge, and a page from a chess book showing the opening move of the Kazlauskas v. Kaplan championship game, a match Julian long obsessed over, circled in red. The gesture signals a new game begun alone. Paul understands that Julian is gone and that their separation is permanent.