The film opens in Tegucigalpa, Honduras. A young girl, Rocio Aguilar (Cristal Aparacio) is playing on her drum and singing a song. A former beauty queen, Gisselle (Yessica Borroto), comes to the Aguilar house and speaks to Rocio’s father Roberto (Jose Zuniga). She claims to be from an agency for child stars, as she heard Rocio singing in the market and would like to sign her. Rocio’s little brother Miguel (Lucas Avila) then walks in and also catches Gisselle’s attention.
Roberto brings the kids to the studio where they are placed along another group of children. Gisselle makes them do a photoshoot together and tells Roberto what time to pick them up. When he goes to the building at the time he was told, he finds the building dark and empty before he begins to panic. We then see the children with Gisselle loaded into a van and being hauled off to a new destination as sex slaves.
In Calexico, California, Homeland Security Agent Tim Ballard (Jim Caviezel) is setting up an operation to catch a wanted pedophile/child predator, Ernst Oshinsky (Kris Avedisian). They wait for him to start downloading a file on captured children. The team of agents makes it into Oshinsky’s house and arrests him. While Tim has captured nearly 300 pedophiles, he knows he has unfortunately not been able to find any of their victims.
Tim gets Oshinsky out of his cell and tries to convince him that he is also a pedophile, in an attempt to gain his trust and find out new information on captured children. They set up a purchase in which a child called “Teddy Bear”, who happens to be Miguel, will be brought to him. With the information needed, Tim has the officers haul Oshinsky back to prison.
Tim and other agents head to the US-Mexico border where Miguel’s buyer, Earl Backman (Gary Basaraba), arrives with the boy. The agents arrest Miguel, and Tim speaks to the boy to try and comfort him. He takes him out for a meal, where Miguel talks about his time being taken and imprisoned for what appears to have been months. Flashbacks show Gisselle and her goons bringing the scared children in for purchasing, and the time Miguel spent after Earl bought him. Miguel tells Tim that Rocio is still captured, and he asks him to help find her. He also shows Tim a necklace of the saint Timoteo, which Rocio had given to him to keep him safe.
Miguel is brought back to Roberto, but he speaks to Tim about how hard it is to not have both his children returned to him. Tim returns home to his wife Katherine (Mira Sorvino), with whom he has six kids. She is sympathetic to Roberto’s pain, which spurns Tim’s decision to take down the sex traffickers, even though his boss Frost (Kurt Fuller) advises him against it.
Tim’s mission brings him to Cartagena, Colombia, where the children have been brought to. He meets with a former cartel member, Vampiro (Bill Camp), in an effort to work together. After learning about a sex hotel in Thailand, he comes up with the idea to set one up there in Colombia to lure Gisselle and her men. They also learn about Gisselle’s background and that her real name is Katy Juarez. Tim and Vampiro set up a meeting with one of Katy’s guys to have all of her captured children delivered to the new location.
After gathering more intel on the traffickers, Tim and Vampiro have a chat about the latter’s personal history. He had spent time with a girl he believed was 20-25 years old, only to learn that she was 14 and had been trafficked since she was 6. This led to Vampiro attempting suicide, but he believes it’s his God-given purpose to help rescue these children. Tim agrees.
Tim is contacted by Frost, who says that he cannot fund the mission and urges him to return home. Tim resigns and vows to complete the mission. With help from Vampiro, they work with an officer named Jorge (Javier Godino) to bring Katy and her men to their location.
The team sets up a beachside location where half of the children are brought to. Tim catches one of Katy’s goons, a man called Carne (Mauricio Cujar), attempting to sneak off with a little boy called Simba (Samuel Livingston). Tim attempts to stop them, leading to Carne’s goon threatening Tim with a gun until Vampiro intervenes. The rest of the children are brought, and with Frost having sent members of the US Embassy to help, agents arrive on the scene and arrest Katy and her goons, even while she tries to play victim. After the villains are arrested, the children gather to play and sing, which Vampiro tells Tim is the “sound of freedom”. Unfortunately, despite there being 54 kids rescued, Rocio is not among them.
One of Katy’s men is interrogated by Tim’s guys, and he spills the beans after learning Carne was killed in his cell. He says that Rocio was sold to the Revolutionary Armed Forces of Colombia, specifically to a man called El Alacran/The Scorpion (Gerardo Taracena). Jorge tells Tim that there is no way he will be able to rescue the girl since nobody goes into rebel-occupied territories, but Vampiro comes up with the idea for them to pose as doctors.
Tim and Vampiro ride a boat through the river before being found by the armed rebels. They take Tim with them after inspecting their items and finding vaccines. He is taken to Scorpion’s camp where he finds Rocio and is put to make cocaine.
At night, Tim waits for Scorpion and his goons to drink and sing songs while he tries to rescue Rocio. She screams upon seeing him, but he gets her to calm down and do as he says. Unfortunately, Scorpion heard the scream and goes to check on her. He takes her and prepares to rape her again, but Tim springs on him and fights Scorpion until he kills him. He takes Rocio with him before the other men notice their boss is dead. Tim hops on a boat and reaches Vampiro in a van as the rebels shoot after them, but their escape is successful.
Before parting ways, Tim gives Rocio back the St. Timothy necklace that Miguel gave him. She is found in the hospital by Roberto and Miguel, who happily reunite with her and bring her back to Honduras. There, she finds a real drum in her room that her father brought for her, and she proceeds to play and sing a song.
The ending text states that the real Tim Ballard’s work in testifying to Congress helped recover over 120 victims of trafficking, and established new laws for governments to cooperate with foreign countries in sex trafficking investigations. Tim’s with Kathy is credited for his decision to take on the mission. The final text states that there are more people sold into slavery today than when slavery was legal, and many of the victims are children.
The credits feature a video from Jim Caviezel thanking viewers for supporting the film and helping raise awareness of a real world issue, while also encouraging viewers to pay it forward and buy tickets for those who cannot afford to do so.