Bruno is a young boy living in Berlin in Nazi Germany during World War II. His father Ralf gets promoted, and relocates the family to the "countryside" (occupied Poland). Living without neighbours, far from any town, and with no friends to play with, 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.
The tutor of Bruno and his sister Gretel, Mr. 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 a portrait of Adolf Hitler. Bruno is confused as the only Jew known to the family, their 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 to death 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 Bruno denies because he is terrified, and Kotler tells Shmuel they will have a "little chat" later. Bruno cries in regret and goes to apologise to Shmuel, but finds him gone. Afterwards, Bruno sneakily sees his father and other soldiers watching a fake film of camp prisoners playing games, having meals in cafes and attending musical concerts. Bruno, thinking it is real, goes to hug his father. Kotler, for failing to inform the Nazi authorities about his father's migration, gets transferred to the Front. Bruno returns to the fence every day and eventually Shmuel reappears, sporting a black eye from Kotler's "little chat". Bruno apologises and Shmuel forgives him, renewing their friendship.
After the funeral of his mother, killed in Berlin by an Allied bombing raid, Ralf tells Bruno and Gretel that Elsa suggests they live with a relative where it is safer; in truth, the mother does not want her children living with their murderous father. Shmuel’s father has disappeared 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 all packed into a gas chamber as the lights go out, with Bruno and Shmuel holding hands comforting each other as a Schutzstaffel soldier pours Zyklon B pellets inside the chamber, and the prisoners begin panicking in fear. 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 the prisoners, including Bruno and Shmuel, are dead.
Asa Butterfield as Bruno the boy
Jack Scanlon as Shmuel, a young Jew sent to a concentration camp
Vera Farmiga as Elsa, Bruno's mother
David Thewlis as Ralf, Bruno's father
Amber Beattie as Gretel, Bruno's older sister
Rupert Friend as Lieutenant Kurt Kotler
David Hayman as Pavel
Sheila Hancock as Nathalie, Bruno's grandmother
Richard Johnson as Matthias, Bruno's grandfather
Cara Horgan as Maria
Jim Norton as Herr Liszt
Released as The Boy in the Striped Pajamas in the United States
The film has drawn criticism from some Holocaust educators for its factual inaccuracy, and emphasis on greater sympathy for the Nazi German family centred in the story, than for the Jewish victims of the Holocaust