Submitted by Steve
Mathias, Rakel’s new boyfriend, is the killer. He is the now grown-up boy whose mother killed herself at the beginning of the movie, and he grew up to resent women who don’t know who their child’s father is or don’t tell their child who their father is. Harry chases Mathias onto a frozen lake and after he shoots Harry, Mathias falls through the ice and drowns, just like his mother did.
Set in Norway, the movie opens with a policeman named Jonas abusing his lover over her son’s lack of knowledge of Norwegian history. After she threatens to tell his wife that he is the father of her son, which the boy overhears, Jonas hastily leaves her house. The woman and her son follow him in her car as snow begins to fall, but he gets away from them. The woman then drives her car onto a nearby frozen lake. The boy gets out of the car, but his mother intentionally stays inside, and drowns when the car falls through the ice.
We then meet Harry Hole (Michael Fassbender), an Oslo Police Detective, as he wakes up from a drunken stupor in a park. The alcoholic detective broke up a while ago with his long-time girlfriend Rakel (Charlotte Gainsbourg), and he is struggling with his drinking while dealing with the break-up. Now at work after being absent for over a week, Harry is opening his mail when he sees an unusual letter that was signed with a drawing of a snowman. While he was out, Harry learns he was paired with a new partner, Katrine (Rebecca Ferguson), and they are assigned the case of a missing woman named Birte Becker, who disappeared after being followed home from work by a man driving a red Volvo. Katrine believes that Birte is the latest victim in a series of missing women, all of whom disappear on the night of the first snowfall of the year, and all of whom have failing marriages and young children. Harry believes Birte’s estranged husband is responsible for the disappearance, even though his alibi checks out, but he notices a snowman on the lawn of their house, and their daughter says she didn’t build it.
That night, Harry meets up with Rakel and her new boyfriend Dr. Mathias Lund-Helgesen at her son Oleg’s hockey game. After the game, Oleg tells Harry that she won’t allow him to find his biological father, not realizing that it’s Harry. He then tells Harry that his school is hosting a father-son camping trip, and Harry agrees to go with him. The next day, Harry and Katrine catch another missing person case involving a woman named Sylvia Otterson (Chloe Sevigny). They travel to her farmhouse, only to find her alive and well. Thinking it was a prank, they leave, only for a man in a black ski mask to attack and kill Sylvia. Harry and Katrine receive another call saying Sylvia is missing and travel back to the farm, where they meet her twin sister Ane (also Chloe Sevigny). She tells them that even though Sylvia is single and childless, she recently had an abortion, and doesn’t know whether her ex-husband or her boyfriend impregnated her. Together, they search the farm and find Sylvia’s headless body in the barn, and her head on top of a nearby snowman. Now believing Katrine’s theory is right, Harry goes to his captain and fills him in on what they have learned, as well as the letter he received earlier. Since the killer reported Sylvia missing before she was killed, Harry thinks the police are part of the killer’s plan. The captain authorizes a task force headed up by Harry and Katrine to find the killer.
While all this is happening, the city of Oslo is bidding to host the Winter Games. The leader of the bid team is Arve Stop (J.K. Simmons), a businessman who Katrine has been investigating long before she was paired up with Harry. She and Harry learn that Arve runs a high-class prostitution ring, and he has also been working with Dr. Idar Vetlesen, and he is a doctor at the clinic that both Sylvia Otterson and Birte Becker visited. Harry also learns that Katrine’s investigation of Arve goes back several years, and involves a man named Gert Rafto (Val Kilmer). Gert was a police detective in the city of Bergen who was investigating a murder when he suddenly committed suicide. Harry is traveling to Bergen to follow up on that when he sees Mathias is on the same train as him. He is traveling to another city for a conference about hormone therapy, and he says that Harry must have canceled the camping trip with Oleg since they were supposed to leave for it that day (Harry completely forgot about it). Mathias then covers for Harry by calling Oleg and says that Harry had to cancel and couldn’t get a hold of him or Rakel, so he called Mathias instead and just now heard the message. Now in Bergen, Harry learns that Gert Rafto is Katrine’s father, and she thinks that Arve Stop is not only responsible for the murder Gert was investigating, but that he also killed her father and made it look like a suicide.
Back in Oslo, Birte’s cell phone is turned back on, and the signal is traced to Dr. Vetlesen’s home. Katrine visits the home, only to find Dr. Vetlesen’s head has been blown off by a shotgun, and is staged to look exactly the same way Gert was found after he died. Once the police arrive, their search of the house leads them to the bodies of Birte and another missing woman who also visited his clinic. Having returned to Oslo, Harry goes to Dr. Vetlesen’s home, where he quickly determines that he couldn’t have committed suicide, but his captain says he did and orders the case closed. Harry then finds Katrine, who is suspended for not telling anyone on the task force about Birte’s phone and entering the Vetlesen home without a warrant, and tells her that he believes her in that her father didn’t kill himself. After he leaves her apartment, Katrine leaves to confront Arve, and doesn’t pay any attention to the snowman that’s right outside her apartment building. She meets Arve at the event that will determine if Oslo gets the Games. She seduces him and agrees to meet in his hotel room after the announcement. Katrine goes to the room to set a trap for him when she is attacked by the man in the black ski mask. After the announcement that Oslo has won the Games, Arve goes to his room, only to see that Katrine is not there. The next morning, Harry sees a snowman on top of his car, and finds Katrine’s dead body inside it.
Harry goes back to visit Birte’s husband, the last person Katrine visited before Harry left for Bergen. He tells her that his daughter is not his biologically, and may tell her that one day, but she considers him her father. He also tells him they didn’t visit Dr. Vetlesen at the clinic, but another doctor who specializes in hormone therapy named Lund-Helgesen. Realizing that Rakel’s boyfriend Mathias is the killer, Harry desperately tries to get a hold of her, but she isn’t answering because Mathias, now back in Oslo, has taken both her and Oleg and are headed to his cabin in the rural town of Telemark in his red Volvo. While traveling there, Harry learns from the task force that Mathias’ mother died many years ago, possibly by suicide, and the detective assigned to the case was Jonas Lund-Helgesen. Mathias was the boy from the beginning of the movie, and the cabin in Telemark was the house he lived in with his mother. After she died, Jonas refused to claim paternity of Mathias and he was sent to an orphanage, where he took his father’s last name as his own. Harry reaches the cabin, and after seeing Rakel and Oleg tied up, he confronts Mathias. He tells Harry that ever since his mother died, he grew up resenting women who didn’t want to know the father of their child or tell their child the name of their father, just like Rakel is doing to Oleg. They fight, during which Harry loses part of a finger, and Mathias escapes. After untying Rakel and Oleg, Harry chases Mathias onto the same frozen lake where his mother killed herself, but Mathias shoots him with Harry’s own gun. Before he can finish him off, Mathias falls through the ice, and he drowns. Harry then returns to the cabin and rescues Rakel and Oleg. The movie ends some time later with Harry, now sporting an artificial finger, accepting a new murder case.