Seventeen-year-old Cristian Florescu is a high school student living in Bucharest, Romania, in 1989. His life is defined by Romania's totalitarian communist regime under corrupt leader Nicolae Ceaușescu. Though he is interested in philosophy and writing, Cristian cannot express his ideas and opinions, as his house, like every Romanian's, is bugged, and a comprehensive network of citizen spies called the "Securiate" documents his every move.
One day at school, Cristian is brought in to meet with a Securiate agent, whom he nicknames "Agent Paddle Hands." Paddle Hands accuses Cristian of accepting foreign currency from his American acquaintance, Dan Van Dorn after Cristian gave Dan a few stamps for his collection. Agent Paddle Hands also leverages the deteriorating health of Cristian's beloved grandfather, Bunu, to convince Cristian to spy on Dan and his father, the American ambassador. Cristian reluctantly agrees, justifying his decision by planning to collect information on the Securiate.
On his way home, grappling with his new role as an informer and wondering who reported on him to the Securiate, Cristian meets Liliana Pavel, his crush. Cristian and Liliana flirt and agree to attend a movie night held by Starfish, the neighborhood contraband smuggler. At home, Cristian comforts his older sister, Cici, who claims she was subjected to an invasive gynecological exam at work as part of the regime's attempt to increase the population. Cristian is further disturbed by his grandfather's clearly deteriorating health, though he jokes with Bunu about the government, the only way they can express criticisms and discontent. Cristian records his feelings in a notebook, which he hides beneath the floor in his closet.
Before the movie night, Cristian and Liliana share a Coca-Cola and discuss their dreams of living outside of totalitarianism. Cristian wonders if Liliana informed on him but concludes that his best friend, Luca, was likely the informer, as no one else knew about his exchange with Dan. Agent Paddle Hands encourages Cristian to befriend Dan and accompany him to the American library. Cristian and Luca "volunteer" for a harvest, and Cristian realizes that the propaganda he sees on television about Romania's natural resources is false. He takes out his anger with the regime and fear by punching Luca, effectively ending their friendship. Cristian's relationship with Liliana continues to grow, though in the back of his mind, he still wonders if she is an informer. Through his friendship with Dan, Cristian learns that Americans enjoy abundant food and freedoms, though the Romanian government portrays the West negatively. Cristian also learns that nearby Eastern European countries are gaining independence from the Soviet Union, which leads him to hope for Romania. Liliana begins to suspect Cristian informed on her family and ends their relationship; Bunu cautions Cristian not to trust anyone because there is an informer in their family. A researcher from Harvard University arrives in Cristian's apartment building to care for her dying Romanian mother. Cristian and his grandfather listen to Radio Free Europe, which reports on political changes happening in Eastern Europe. Bunu's health improves, and Cristian starts to hope for his future. Still, he reports on the Van Dorn family to Agent Paddle Hands and tries to mislead the Secu. From the security reports, it is clear that Agent Paddle Hands does not buy into Cristian's facade and deems Cristian's information worthless. Back at the library, Cristian learns that Dan Van Dorn did not give him an American dollar, leading him to suspect other people in his life who may have set him up. When he returns home, Cristian discovers that his grandfather has been violently murdered to discourage other family members from embracing revolutionary ideas. Devastated and furious, Cristian documents the human rights violations he experiences in Bucharest and passes the information on to Mr. Van Dorn. Before his final meeting with Dan, Cristian leaves his notebook on Mr. Van Dorn's desk. In the library, Dan gives Cristian a Christmas present, as they will likely never see each other again. Dan also asks Cristian to read his essay about life in Romania, but Cristian refuses because he would have to report the content of the essay to the Securiate. While looking through the library, Cristian also discovers photographs and articles about Nicolae Ceaușescu and his relationships with Western nations. He is particularly disturbed by images of Ceaușescu at Disneyland, enjoying time with his family while the entirety of Romania suffers. Disillusioned and angry, Cristian feeds false information to Agent Paddle Hands that the new American ambassador is "aggressive" and wants to change the Romanian government. Cristian hears news reports that uprisings are taking place in the nearby Romanian city of Timișoara. Cristian is seized by enthusiasm and a revolutionary spirit, though his mother discourages him from doing anything rebellious. Still, Cristian makes a deal to buy Amnesty International reports on Romanian human rights violations from Starfish. While collecting his money from his sister Cici's lockbox, where she keeps contraband and money, he realizes Cici was actually informing on him the entire time. Shocked and hurt, Cristian follows Cici the next day and sees her in a compromising position with Agent Paddle Hands. Cristian accuses her of killing Bunu and ruining his life, unwilling to hear her side of the story. On his way home, Cristian meets Luca, with whom he is now on good terms, and joins him at a political demonstration where citizens boo Ceaușescu offstage. The protest turns violent as soldiers arrive; Luca is shot, and Cristian is apprehended and tortured. He is brought to the political prison, Jilava, with Liliana. There, they are forced to kiss the official portraits of Ceaușescu and his wife, Mother Elena, and perform degrading acts cleaning a filthy bathroom. Cristian, Liliana, and the other children are then taken to a juvenile detention center. However, Cristian escapes to get help for Liliana and the others. First, Cristian meets with Starfish and gets enough Kent cigarettes to bribe the hospital staff into letting him see Luca, who is alive but unconscious, his injured arm amputated. Cristian sees Cici at the hospital, and though he neither trusts nor forgives her, he asks her to help Liliana. At Luca's parents' request, Cristian goes to their apartment to protect Luca's younger sisters as violence, looting, and assassinations plague Bucharest. Cristian falls asleep and is woken up hours later by Luca's parents. With the news that Liliana is alive and has escaped the detention center, Cristian returns home to recover. When Cristian awakens, he meets Liliana, who was tortured at the detention center. The two confess their love for each other and spend Christmas Eve and Christmas Day together, listening to reports about the Ceaușescu's capture, trial, and execution. Finally free and hopeful, Cristian and Liliana share Twinkies and discuss their future. In the Epilogue, Cristian and Liliana are still together, Cristian working as an English teacher and Liliana, a bookstore owner. Cristian's entire family is dead, Cici having been murdered during the revolution. Cristian reads the thousands of pages of declassified Secu documents and learns that Cici was a double agent for the Americans, always trying to protect him, even going so far as obtaining foreign passports for the two of them. Cristian also learns that his mother was the true informer who struck a deal to keep Cristian and Cici safe. At his high school reunion, Cristian learns Agent Paddle Hands is still alive and living nearby. The novel ends with Cristian waiting outside Agent Paddle Hands' door, searching for answers.