In the opening scene, an unnamed highly skilled and trained assassin enters a hallway and kills numerous people with her gun and knives before being surrounded by cops and smiling a grim smile.
The assassin is shown in a room in an unnamed facility. She is drugged and is given plastic surgery. While recuperating, she has a flashback showing an unnamed man with a mustache trying to resuscitate her after a breath holding exercise. He is calling her Sook-hee.
The facility turns out to be part of South Korea's intelligence agency and is run by a woman named Kwon-sook. Kwon-sook tells Sook-hee that to give her a new start the agency has faked her death. Kwon-sook tells her they have given her a new identity and name, Chae Yeon-soo. Yeon-soo says she doesn't care and wants to die. Kwon-sook tells Yeon-soo she is pregnant. Kwon-sook offers her a deal: train with her as an agent, work as an agent, and she will have freedom after 10 years of service. Yeon-soo accepts and while in training, gives birth to a daughter, Eun-hye.
Still at the facility, Yeon-soo is having a procedure to remove a tattoo from her shoulder and while this is happening, she has a flashback to the unnamed man with a mustache giving her the shoulder tattoo when she was 20-year-old Sook-hee. Another flashback occurs, and we again see 20-year-old Sook-hee as a highly skilled and trained assassin trying to kill an unnamed man with yellow teeth. Sook-hee is captured and, while beating her, the unnamed man with yellow teeth tells her he did not kill her father. Eventually, the unnamed man with a mustache arrives, shoots the man with yellow teeth, and frees Sook-hee. The flashback continues, and we see Sook-hee as an 8-year-old being trained to load a pistol by the unnamed man with a mustache. The man tells the young Sook-hee to devote her life as an assassin to him.
Kwon-sook gives Yeon-soo a folder with the info for her first "assignment." When she kills the target, she looks up to see a young girl on the stairs. This triggers a flashback to 7-year-old Sook-hee seeing her father killed. Sook-hee is hiding under a bed and doesn't get a look at the killer's face; she only hears him whistling an eerie tune. When a man comes back into the room, we are shown that this person is Jang-Chun, the unnamed man with yellow teeth. Jang-Chun was a friend of Sook-hee's father. Her father had stolen a diamond. Jang-Chun sells Sook-hee to a prostitution ring. Sook-hee is about to be raped by a prostitution client when the unnamed man with a mustache arrives and rescues her. We learn his name is Lee Joong-sang. And we learn how it came about that Joong-sang trained Sook-hee to be this killing machine and why she is so devoted to him.
Having completed her first assignment, Yeon-soo is released from the facility and will continue to work for the agency from her own apartment that she shares with her daughter Eun-hye. Unknown to Yeon-soo, Kwon-sook has placed a male agent in the apartment beside Yeon-soo's apartment. His name is Jung Hyun-soo, and he is to befriend Yeon-soo and keep tabs on her.
After a few meetings with each other, Yeon-soo asks Hyun-soo out. While noticing Hyun-soo's tie, Yeon-soo is reminded of a tie she gave to Joong-sang. It is revealed in flashbacks that Sook-hee and Joong-sang had gotten married. We learn in a flashback that the marriage was not the same for Joong-sang as it was for Sook-hee. We learn that Sook-hee says that she is willing to let go of her thirst for revenge if she can get married and live a normal life. Joong-sang sees that his trained assassin would no longer be of much use, so he sets up an act. He stages a wedding with her and pays people to attend the wedding and while on their honeymoon, he fakes saving a gang member called Choi Chun-Mo and stages his own death. When Sook-hee hears he is dead, she loses her mind and goes on a killing rampage and takes out the whole gang (who she thinks is behind Joong-sang's death). Joong-sang has eliminated his rivals and Joong-sang expects Sook-hee to be killed because of her rage and the sheer numbers of the gang. But they are no match. This is the opening scene of the movie.
While on a mission together with Min-ju, a classmate from the facility, Yeon-soo is caught stealing a phone, and in the ensuing fight, Min-ju is killed. The info from the phone has documents about Choi Chun-Mo and the agency is worried that since Yeon-soo knew him, she may be a double-agent. Hyun-soo comforts Yeon-soo and this brings them closer together.
Yeon-soo continues to live at the apartment and the agency has figured their next target for her. The agency wants to do an assassination from a wedding catering company, so it decides to arrange a wedding between Hyun-soo and Yeon-soo. In a callback to the earlier story, the agency pays people to attend the wedding, and Yeon-soo in her wedding gown aims a rifle out a window to her target, whom she sees through the rifle scope. The target is Joong-sang. She can't kill him, shocked that he's still alive.
Joong-sang backtracks the location from which the shots come and identifies Yeon-soo as Sook-hee from the wedding photos. He makes contact with Yeon-soo to verify that it is actually her. He tapes a conversation of the agency and sends it to Yeon-soo. The conversation reveals that Hyun-soo is actually an undercover agent. She turns on the agency.
The agency takes Yeon-soo into custody. In the meanwhile, Joong-sang's gang gets to Hyun-soo and Eun-hye. Hyun-soo tries to tell Joong-sang (on the phone) that Eun-hye is, in fact, Joong-sang's daughter hoping for all the killing to stop. Joong-sang doesn't care for the little girl and tells Hyun-soo to kill the kid in exchange for his own life. Hyun-soo tries to fight the gang but is knocked unconscious and left with the little girl and a bomb.
Joong-sang stages a "rescue" of Yeon-soo from the agency's custody. As she reaches her apartment, she watches as the bomb goes off and Hyun-soo and her daughter both die. She thinks it's the work of the agency. She goes to confront Kwon-sook, but Kwon-sook has news for her: Hyun-soo had found Jang-Chun, the unnamed man with yellow teeth, and got to know everything. This interview was recorded on surveillance tape. Kwon-sook plays the tape for Yeon-soo.
Yeon-soo is consumed with revenge. Yeon-soo tracks down Joong-sang and his gang to a parking garage. She kills all the gang members in the garage and confronts Joong-sang, who escapes to the street and meets his remaining gang members; they all speed off in a shuttle bus. Yeon-soo chases after them. She catches up to the bus, boards it, crashes the bus, and finally holds an axe over Joong-sang's head. He puts his head down and starts whistling the same eerie tune. She strikes Joong-sang in the head with the axe before walking out of the wreckage with the police surrounding her; she smiles a grim smile.