Jojo Betzler (Roman Griffin Davis) is a ten-year-old boy in Nazi Germany during the second world war. He is extremely patriotic and loves his country and loves the fuhrer – he talks to his imaginary friend Adolf Hitler (Taika Waititi), who, in his mind, he sees as his best friend and biggest cheerleader. He and his best friend Yorki (Archie Yates) go to a training camp for Hitler youth run by Captain Klezendorf (Sam Rockwell), his second-in-command Finkel (Alfie Allen), and Fraulein Rahm (Rebel Wilson). Jojo wants to be the best Nazi at camp, but one day some of the older boys decide to test him on his commitment by commanding him to kill a rabbit. Jojo can’t do it, and so the boys start chanting “Jojo Rabbit”, and Jojo runs away. Hitler tells him that rabbits have their good qualities, and to go back to them and prove them wrong. As Klezendorf shows the youth how to toss an explosive, Jojo triumphantly takes the explosive and throws in – into a tree. It bounces back and lands directly in front of Jojo, exploding.
Jojo is rushed to the hospital – when he awakes, he has scars on his face and a limp in one of his legs. His mother, Rosie (Scarlett Johansson), takes him home to recuperate. She takes him to Klezendorf’s office, where he and the rest of his crew (including Finkel, who is his secret lover) have been demoted for the grenade incident. She knees him in the balls and tells him to make Jojo feel included like all the other boys – but technically, Jojo can’t serve with the Hitler youth militia due to his injuries. When he goes home, he searches around his house and finds a secret compartment and discovers Elsa Korr (Thomasin McKenzie), a teenage Jewish girl hiding inside. Jojo screams and wants to tell someone or kill her, but she overpowers him. She tells him if he tells his mother she will kill him, and if he tells anyone else, the Gestapo will kill his mother for hiding her. In the town square, Jojo and his mother see the hanging bodies of victims of the Gestapo. Jojo asks what they did, and Rosie says, “What they could.”
Rosie tends to Elsa in the hiding place – Elsa was a classmate and friend of Rosie’s deceased daughter, and Rosie tries to keep Elsa’s waning spirits up. Meanwhile, Jojo and Hitler brainstorm ideas on how to get rid of Elsa. Jojo believes the false anti-Jewish propaganda and thinks Elsa has demonic traits and evil intentions. He agrees not to tell anyone about her but insists on interviewing her for details on the Jews that he is going to write into a book to help the Nazis. Elsa makes up stories about what Jews are like to quell Jojo. Jojo is angry with his mother for hiding a Jew, but can’t tell her because of his deal with Elsa, so he acts grumpy, accusing her of not loving her country. He tells her he wishes his missing-in-action father was here instead of her, so Rosie puts on a jacket and soot on her face and pretends to be his father, yelling at him for talking to his mother that way. She then tells Jojo to dance with her – Rosie believes that dancing is one of the few ways you can be free under this Nazi regime.
Jojo continues his interviews with Elsa, who tells him she has a boyfriend who she wants to reunite with when the war is over. Jojo pretends to get a letter from the boyfriend and reads it to her, breaking up with her. When Elsa seems upset, Jojo gets another “letter” that takes back what was said in the first one. Jojo and Hitler have more arguments, with Hitler insisting that Elsa is a monster and Jojo questioning that. Meanwhile, Jojo spots Rosie leaving “free Germany” postings around town.
Jojo is home one day when the Gestapo, led by Captain Deertz (Stephen Merchant), enter and begin tearing the house apart. Jojo panics, knowing Elsa is upstairs. Klezendorf and Finkel arrive on the scene. Elsa reveals herself and pretends to be Jojo’s sister. The Gestapo demands her papers, which she produces – Klezendorf asks her to confirm her birthday, which she does, and they leave. Jojo is relieved, and Elsa tells him that she got the date wrong on the papers – Klezendorf let them go. But she is certain danger is closing in.
Jojo walks through the city one day and finds his mother has been hanged in the town square. Devastated, he returns home and stabs Elsa in the shoulder, then breaks down again. Elsa comforts him. In the city, Jojo runs into Yorki, now a full soldier, who tells him that the Allies are closing in and that Hitler killed himself. Jojo is shocked, and sees Rahm arming more children as the battle wages – she gives him a Nazi coat. Klezendorf and Finkel enter the fray, wearing homemade uniforms emblazoned with pink triangles. The Allies win the battle and Soviet troops round up all the Nazis to be executed, including Jojo. Klezendorf takes Jojo’s cost off and tells him his mother was a good woman, then calls Jojo a Jew and spits on him. The soldiers remove Jojo, who screams as Klezendorf is executed.
Jojo reunited with Yorki, who wonders what they’re going to do now. Jojo runs home, where Elsa asks who won. Jojo, who has fallen in love with her, lies and says Germany to keep her from leaving. Recognizing her devastation, he gets a new “letter” from her boyfriend that says he and Jojo have figured out a way to smuggle her out. Elsa confesses that her boyfriend died. Jojo tells her he loves her, and she tells him she loves him too – in a little brother way. Hitler confronts Jojo one last time, angry at him – and Jojo kicks him out of the window, rejecting him fully and finally. Jojo takes Elsa outside, now in free Germany. They’re unsure of what to do now… and so they dance.