Hanna Heller (Saoirse Ronan) is a 15-year-old girl who lives with her father, Erik Heller (Eric Bana) in the wilderness of Finland. When she is first seen, she is hunting a reindeer which she shoots with a bow and arrow. Hanna chases the animal until she comes across it, collapsed. She comments that the arrow missed the heart and then she finishes off the reindeer with one shot.
Ever since she was born, Hanna has been trained by Erik to become an assassin. As part of her training, she has never come into contact with modern technology and has memorized a series of fake back stories for herself to be used when the time comes.
One night, Hanna approaches Erik and tells him that she is "ready", and he retrieves a box containing an old transmitter, which he gives to her. After analyzing the situation, Hanna flips the switch, sending a signal of her location to Marissa Wiegler (Cate Blanchett), a corrupt CIA agent. Marissa sends a team to Erik's cabin, where Hanna, who had been waiting for them, is captured and taken to a CIA safe house in Morocco. There, she discovers that Erik is a former CIA agent who betrayed the agency and knows a secret that can't become public. Marissa has been assigned to kill him, but Hanna has been trained to kill Marissa by Erik. Knowing that Hanna was captured too easily, Marissa sends a body double (Michelle Dockery) to speak with Hanna. Hanna kills the false Marissa, breaks free and escapes the compound.
While on the run through the desert, she meets Sebastian (Jason Flemyng) and Rachel (Olivia Williams), and befriends their daughter Sophie (Jessica Barden). They decide to help her go to Berlin, after she tells them her fake back story. Meanwhile, Marissa hires a mercenary called Isaacs (Tom Hollander) to capture Hanna while she goes after Erik, who is in Germany. Later, Isaacs and his men corner Hanna and the family, but she manages to escape after killing one of Isaacs' men. The boy of the captured family, who has a crush on Hanna, is tricked into telling Marissa that Hanna is heading for Berlin.
In Berlin, Hanna meets with one of her father's associates, who lives in an abandoned amusement park, to rendezvous with her father. However, Marissa and Isaacs locate them. They kill Erik's associate, but Hanna escapes. She eventually meets with her father at her grandmother's apartment, where she discovers that Marissa has murdered her grandmother. Hanna learns that Erik is not her father, and it is revealed that Erik was once a recruiter for a program in which pregnant women were recruited from abortion clinics so that the CIA could alter their children's DNA, enhancing their strength, stamina, and reflexes while suppressing emotions like fear and empathy in order to create a batch of super-soldiers. The project was, however, deemed a failure by the CIA higher-ups and all the women and their genetically-modified children were eliminated. Erik, unwilling to allow Hanna and her mother to be killed, tried to escape with them, but Marissa murdered Hanna's mother while Erik escaped with Hanna to their cabin, where, in complete isolation, Erik was able to train her to avenge her mother while preventing the CIA from locating them.
Their discussion is interrupted by Marissa and Isaacs as Erik acts as a distraction to allow Hanna to escape. Erik kills Isaacs and his partner, but is shot and killed by Marissa. Marissa then chases Hanna back to the abandoned amusement park where the two finally have a stand off. Hanna pleads for an end to the killing, but Marissa shoots Hanna, who in turn wounds Marissa with an improvised bow-and-arrow. As Marissa attempts to flee, Hanna hunts her to the top of a tall slide causing Marissa to fall down the slide, dropping her gun. Hanna picks up the gun, commenting how she missed Marissa's heart, and shoots her.