Bruno, un niño alemán de ocho años durante el régimen nazi en la Segunda Guerra Mundial, ignorante de la tragedia que rodea a su tiempo, es hijo de un estricto comandante que acaba de ser asignado a su nuevo puesto en un campo de concentración. Bruno, que convive junto con su hermana mayor Gretel en un barrio acomodado de Berlín, se ve entonces repentinamente obligado a mudarse, trasladándose a un lugar aislado llamado «Auchviz».
Bruno, molesto por la situación, se desespera por no encontrar ningún amigo con quien jugar en su nueva casa, más pequeña y con menos terreno para explorar, una de sus aficiones. Desde su ventana se puede ver, al otro lado de la carretera, un grupo de casas tras una valla y mucha gente vestida con pijamas de rayas. Todos los que allí se encuentran son judíos confinados en el campo de concentración de Auschwitz. Bruno, en su inocencia, da por supuesto que son granjeros.
El tiempo pasa en la nueva casa. Los padres de Bruno recurren a los servicios de un tutor, el profesor Hr. Liszt, para ocuparse de la enseñanza escolar de Bruno y Gretel, pero Bruno no tarda en considerar al nuevo tutor como «el profesor más aburrido que pueda haber jamás», pues solo enseña Geografía e Historia en lugar de Artes, su asignatura favorita. Bruno se pregunta qué estaría pasando en «Auchviz» y por qué la gente va siempre vestida con un pijama rayado. Mientras tanto Gretel asimila las enseñanzas del profesor y el ideario del partido nazi.
Bruno realmente no comprende que están en tiempos de guerra. Un buen día, en una de sus exploraciones por los alrededores de la casa, siempre a escondidas de su familia, se encuentra a un niño al otro lado de la alambrada, de ocho años de edad, como él. El niño se llama Shmuel. Bruno y Shmuel comienzan a quedar con regularidad, Bruno de vez en cuando le lleva comida y Shmuel habla a Bruno de cómo es su vida al otro lado de la alambrada, de cómo era antes y de su familia. Bruno y Shmuel se hacen amigos.
Esta amistad se mantiene incluso tras un incidente en el que Bruno reniega de su amigo Shmuel ante el teniente Kotler, cuando Shmuel es llevado a casa de Bruno para limpiar un montón de copas de cristal y es acusado de robar comida cuando realmente esta se la había ofrecido su amigo. Bruno le pide disculpas a Shmuel días después; ya que Shmuel no había acudido en días a la cita tras la alambrada, Bruno pensaba que había perdido la amistad de su nuevo amigo. Así están, viéndose a escondidas, durante aproximadamente un año.
Los padres de Bruno deciden un buen día que ese no es un lugar adecuado para el crecimiento sus hijos, decisión que precipita la madre de Bruno al conocer la verdadera misión de su marido en el campo de concentración. La madre y los niños partirían de Auschwitz en un par de días. Bruno da la noticia de su traslado a Shmuel, justo el día en que Shmuel se encuentra triste porque no encuentra a su padre. Bruno decide ayudarle, ya que sería la última aventura antes de marchar de Auschwitz, y para liberarse de la vergüenza de haber traicionado a su amigo frente al teniente Kotler.
Deciden que al día siguiente, el último de la estancia de Bruno en Auschwitz, Bruno pasaría al otro lado de la alambrada, y disfrazado con ropas de prisionero que Shmuel podría conseguir fácilmente buscarían al padre de Shmuel. Al día siguiente Bruno se disfraza con el pijama de rayas y cruza la alambrada: por fin Bruno y Shmuel están juntos.
Mientras buscan al padre de Shmuel entre los barracones comienza a llover. Los soldados forman un grupo de prisioneros entre los que se encuentran Bruno y Shmuel. El grupo es llevado a una cámara de gas, donde Bruno y Shmuel mueren juntos sin sospechar que el lugar no era un refugio para la lluvia, tal y como había pensado Bruno.
Los padres de Bruno se percatan de la ausencia del niño y lo buscan por los alrededores de la casa desesperadamente. Encuentran las ropas de Bruno frente a un agujero bajo la alambrada. Es demasiado tarde, al final todos se dan cuenta de lo que ha sucedido, y nada más se puede hacer.