The novel begins in Germany in the 1940s. Bruno comes home from school to find the maid, Maria, packing his things because the family is moving away from Berlin. Bruno's not happy about this and whines to his mom, dad, Gretel, the maid, and her dog (we kid… about the dog part). But Bruno's out of luck; his father just got a promotion and they're moving on up, whether he wants to or not.
Adding to Bruno's troubles, the family's new house is weak with a capital W—it's smaller than their old house, super isolated, and there's a huge wire fence near the property. Ugh. While Bruno unpacks his things, he spots a sketchy looking blond soldier and takes an immediate disliking to him. He notices a window, looks through it, and sees something that makes him feel "cold and unsafe"… Dun dun dun.
Bruno tells Gretel that the other children look unfriendly. Wait a second… There are other children? Yep, turns out Bruno's window has a lovely view of the Auschwitz death camp. Yikes. Bruno thinks it's weird that there are tons of kids and adults on the other side of the fence and even weirder that they all wear the same striped pajamas and striped cap.
After a few weeks, Bruno decides that he needs to find some sort of entertainment or he'll go mad. His grand idea? Why, make a tire swing, of course. Lieutenant Kotler helps him out and orders Pavel, a Jew, to get a tire from the storage shed. Pavel sets Bruno up and soon the kid's happily swinging—well, until he falls.
Luckily, Pavel comes to Bruno's rescue; while he cleans him up, he tells Bruno he's a doctor. But this doesn't make any sense to Bruno—after all, the guy works in the kitchen peeling potatoes. Soon after, Bruno's mother comes home and discovers what happened. She tells Pavel that if the Commandant asks, she cleaned Bruno's wounds.
Bruno has a flashback to the last Christmas with his family and his grandparents. Here's what went down: Grandma told Bruno's father that she's ashamed of what he's become and can't believe what he and other Nazis are doing, then she stormed out. It's the last Bruno's seen of her. Back in the present, months pass and Bruno decides to go exploring, which basically involves walking along the length of the wire fence that separates his family from the concentration camp. Some adventure.
During his exploration session, Bruno comes upon a boy sitting on the ground in pajamas and an armband (featuring the Star of David). Bruno is kind of shocked by how small and sad looking the boy is, but hey, beggars can't be choosers, right? And Bruno could really use some company. Schmoozing ensues, and it turns out that the boy's name is Shmuel and he and Bruno share a birthday. Shmuel is from Poland and informs the oblivious Bruno that they're in Poland and not in Germany like Bruno's been thinking. When they part ways, they plan to meet again tomorrow.
Time for another flashback, this time to when Hitler came to dinner. He brought his girlfriend, Eva, and Bruno and Gretel were not allowed to have dinner with the adults. Aw shucks. Afterward, Bruno heard his parents arguing about the move, which his mother was totally against.
Back in the present, it's the next day, so Bruno returns to the fence. Shmuel explains what happened to him and his family before coming to the camp.
Soon after, Bruno walks into his kitchen and is shocked to see Shmuel cleaning crystal glasses—turns out his pal's been brought to the house by Kotler to clean glasses for Father's birthday celebration. What should be a cool catch up turns disastrous when Bruno offers Shmuel chicken (he eats it, of course) and Kotler catches him and gets mad (of course). Shmuel says Bruno gave it to him and that they're friends—but like a punk, Bruno says he's never seen him before in his life. Ooh… not cool, Bruno.
After more than a year, Bruno's mother wants to move back to Berlin with the kids. Bruno's not as happy as he thought he'd be about this idea, though, and dreads breaking the news to Shmuel. However, as it turns out, Shmuel has bigger fish to fry: His dad's gone missing. The boys hatch a plan for Bruno to dress up in pajamas and help Shmuel find his dad before he leaves Auschwitz on Saturday. The next day, Friday, Bruno goes to the fence.
He changes into his striped pajamas, leaves his things on his side and crawls under the fence. The two boys walk toward the camp and Bruno realizes that things are very bad on Shmuel's side. Bruno wants to go home, but he's promised Shmuel he'll help, and as a loyal friend, he stays. Unfortunately, though, they don't find Shmuel's father.
Just as Bruno is about to head home, the boys are surrounded by soldiers and forced to march. They're led to a gas chamber (neither boy realizes this), and once inside, they hold hands. The lights go off, chaos ensues, and we, unfortunately, know that the end of their story is not going to be happy.
The last chapter shows how the family deals with Bruno's disappearance: His mother and Gretel eventually go back to Berlin, but his father stays in Auschwitz. One day he has an epiphany, retraces Bruno's steps, and realizes with horror what happened to his son. The novel ends with "other soldiers" (a.k.a. the Allies) coming to Auschwitz and ordering him to go with them.