In pre-World War II Germany, swing music becomes the underground movement of young people. Two high school students, Peter Müller (Robert Sean Leonard) and Thomas Berger (Christian Bale), attempt to be swing kids by night and Hitler Youth by day. The impact of this decision is felt acutely by their friends and families. Soon dancing and fun lead to more difficult choices as the Nazis begin tightening their grip on Germany. A seemingly charming but intimidating Gestapo officer, SS-Sturmbannführer Knopp (Kenneth Branagh, in an uncredited role), insinuates himself into their lives. Each member of the group is forced to face difficult choices about right, wrong and survival. This is the story of one group of Swing Kids, and how Nazi rule and persuasion tore them apart and set them against each other.
Set in 1939 Hamburg, Peter Müller and Thomas Berger join their friends (Arvid—a big-band fanatic and swing guitarist—and Otto) at the Bismarck, a swing club. They have a good time, dancing and enjoying the music. Leaving the club, Arvid (who has a club foot) can barely keep up as the other boys run off. After he catches up, they laughingly stop to urinate on Nazi propaganda posters. As they head home they see a man being chased by the Gestapo and are only mildly shocked, even when he jumps off a bridge and is shot in the river.
Peter goes home to find his mother, Frau Müller, in an argument with a Nazi officer. Herr Knopp (head of the local Gestapo) arrives and curtly dismisses the officer. Knopp questions Frau Müller about some of her late husband's friends; Herr Müller had been accused of being a communist, and was irreparably damaged by an interrogation at the hands of Nazi agents. Peter never understood what happened to his father, and evades his younger brother Willi's attempts to question him on it. When Peter and Thomas visit Arvid, Thomas accidentally scratches one of Arvid's records; Arvid flies into a rage, and Thomas suggests that he and Peter leave so Arvid can "jack off to his records". To apologize to Arvid, Peter and Thomas steal a radio (which Peter knows was stolen from a ransacked Jewish home) from a bakery. Thomas escapes, but Peter is caught. Herr Knopp (who is attracted to Peter's mother) intercedes for him; in return, Peter must enroll in the Hitlerjugend (HJ). On Peter's first day at HJ school, he finds Thomas wearing the HJ uniform and a broad smile; the fun-loving Thomas notes that it is the perfect cover: "HJs by day, swing kids by night!"
When Arvid is walking home one day he is confronted by HJs who take a Benny Goodman record from him, smash it and beat him up. Emil (a former friend and swing-kid-turned-HJ) deliberately stamps on Arvid's fingers, damaging them severely. Arvid wakes up in the hospital, terrified by HJ uniforms until he realizes it is only Peter and Thomas. He eventually cheers up, noting that he can learn to play with two fingers. During a Boxing class at HJ school, Thomas challenges Emil. When Thomas is defeated, he refuses to give up, becoming more aggressive. Thomas accuses Emil of selling out to the Nazis, to which Emil replies, "I wised up." Emil and Thomas reconcile as Thomas, seduced by the power and the perks, begins to buy into the Nazi philosophy.
Peter (who has a job delivering books) is asked to spy on his boss, whom the Nazis suspect is working against the Reich. He peeks into a book he is delivering to Frau Linge (who knew his father), discovers incriminating papers hidden inside and becomes even more fearful of the Nazis. Arvid (working at a jazz club) refuses to play a German song, lashing out at the club's patrons for being blind to the Nazi agenda. Peter is sympathetic; Thomas, however, loudly argues the Nazi side, saying Arvid should watch out because "we're coming for you next" (referring to the Nazi policy of executing the disabled). Shocked and angry, Peter shouts "You're turning into a Nazi!"; Thomas bluntly responds, "So what if I am?". Arvid realizes that there is no future for him in Germany, and no hope of escape. He goes home and commits suicide in the bathtub, slitting his wrists with a broken record.
In HJ school, the boys are encouraged to spy on their friends and families. Thomas (whose father despises him) accuses his father of insulting Hitler, hoping to cause trouble for him. He is unnerved, however, when the Nazis come to his home and take his father away; his subsequent attempts to resume his friendship with Peter and persuade him to collaborate with the Nazis are tinged with fear.
Peter is sent by the HJ leaders to deliver identical small packages to three different families. Hearing screams from the second house as he walks away he opens the third one, finding ashes and a wedding ring inside. Horrified, he runs to Frau Linge. She gives him a letter his father wrote to her husband about the anti-Nazi work he did, and Peter finally understands what really happened to his father.
Abandoning his HJ uniform, Peter wears his most fashionable clothes to a club he knows is slated for attack. Thomas finds him, begins beating him and suddenly comes to his senses, begging Peter to run: "They won't let it go this time!" but Peter, almost willingly, boards the truck taking him (and others) to a labor camp. Thomas calls to him, "Swing Heil!"; Willi (who has followed) defiantly shouts the phrase through his tears.
- Robert Sean Leonard as Peter Müller,
- Christian Bale as Thomas Berger
- Frank Whaley as Arvid
- Barbara Hershey as Frau Müller
- Tushka Bergen as Evey
- David Tom as Willi Müller
- Julia Stemberger as Frau Linge
- Kenneth Branagh as SS-Sturmbannführer Knopp
- Noah Wyle as Emil Lutz