A young boy named Bruno lives in Berlin, in Nazi Germany during World War II. His father Ralf is promoted, and relocates the family to the “countryside” (occupied Poland). Living without neighbours, far from any town, Bruno becomes lonely and bored. After spotting people working on what he thinks is a farm in the distance – actually a concentration camp – he is forbidden from playing in the back garden.
Bruno and his sister Gretel’s tutor, Herr Liszt, pushes an agenda of antisemitism and Nazi propaganda. This, together with Gretel’s infatuation with Lieutenant Kurt Kotler, makes her fanatical in her support for the Third Reich, to the point of covering her bedroom wall with posters and portraits of Adolf Hitler. Bruno is confused, as the only Jew he has seen, the family’s servant Pavel, does not resemble the antisemitic caricatures in Liszt’s teachings.
Bruno sneaks into the woods, arriving at a barbed wire fence surrounding the camp. He befriends a boy named Shmuel, and their ignorance of the camp’s true nature is revealed: Bruno thinks the striped uniforms that Shmuel, Pavel, and the other prisoners wear are pyjamas, and Shmuel believes his grandparents died from an illness during their journey to the camp. Bruno meets Shmuel regularly, sneaking him food and playing board games. He learns Shmuel is a Jew, brought to the camp with his father and mother.
Bruno’s mother Elsa discovers the reality of Ralf’s assignment after Kotler lets slip that the black smoke coming from the camp’s chimneys is due to the burning corpses of Jews, and she confronts Ralf. At dinner, Kotler admits that his father had left his family for Switzerland. Ralf tells Kotler that he should have informed the authorities of his father’s disagreement with the current political regime. Embarrassed, Kotler violently beats Pavel for spilling a glass of wine.
Bruno sees Shmuel working in his home, and offers him some cake. When Kotler finds Bruno and Shmuel socialising, he berates Shmuel, and notices him chewing. Shmuel explains that Bruno offered the cake, which the fearful Bruno denies, and Kotler tells Shmuel they will have a “little chat” later. Bruno goes to apologise to Shmuel, but finds him gone. He returns to the fence every day, and eventually Shmuel reappears, sporting a black eye. Bruno apologises and Shmuel forgives him, renewing their friendship.
After the funeral of his grandmother, killed in Berlin by an Allied bombing, Ralf tells Bruno and Gretel that their mother suggests they live with a relative where it is safer; in truth, Elsa does not want her children living with their murderous father. Shmuel’s father has gone missing after participating in a march, and Bruno decides to redeem himself by helping Shmuel find his father. Donning a prisoner’s striped outfit and a cap to cover his unshaven head, Bruno digs under the fence to join Shmuel. He is shocked to see the many sick and weak-looking Jews, and the boys are taken on a march with other inmates by Sonderkommandos.
At the house, Gretel and Elsa discover Bruno’s disappearance, and Elsa bursts into Ralf’s meeting to alert him that Bruno is missing. Ralf and his men mount a search, with Elsa and Gretel following behind. A dog tracks Bruno’s scent to his discarded clothing outside the fence, and Ralf enters the camp. Bruno, Shmuel, and the inmates are taken to a changing room and told to remove their clothes for a “shower”. They are packed into a gas chamber, as a Schutzstaffel soldier pours Zyklon B pellets inside, and the prisoners begin panicking. When Ralf realises that a gassing is taking place, he cries out his son’s name; at the fence, Elsa and Gretel hear Ralf’s cries and fall to their knees in despair. The film ends by showing the closed door of the now silent gas chamber, indicating that all prisoners, including Bruno and Shmuel, are dead.