Julian is an American expatriate who, along with his older brother Billy, runs a Muay Thai boxing club in Bangkok, Thailand, as a front for drug dealing. Julian is quiet and seems to have a troubled past. He engages in deviant sexual practices, preferring to be bound as he watches his favorite prostitute, Mai, masturbate. One night, Billy rapes and kills an underage prostitute and is cornered by Thai police. Lieutenant Chang allows the girl’s father, Choi Yan Lee, to exact his vengeance on Billy however he sees fit. Choi chooses to beat Billy to death in the same room Billy killed the girl, but Chang later cuts off Choi’s forearm for allowing his daughter to be a prostitute in the first place. During a session with Mai, Julian has a vision of himself meeting Chang in a dark room, where Chang cuts his hands off.
Upon discovering his brother has been murdered, Julian and his crew go to Choi’s kiosk to confront him but Julian ultimately decides to spare Choi’s life. When Julian’s mother, Crystal, arrives in Bangkok, she demands that he find and kill the men responsible for Billy’s death. Julian refuses, believing Choi was justified in avenging the death of his daughter, infuriating Crystal. After having Choi killed, Crystal learns of Chang’s involvement and meets with Byron, a rival drug dealer. She offers to cut him into her drug dealing operation if he will put out a hit on Chang.
The police arrive at Julian’s club investigating Choi’s murder, but Chang concludes that Julian is not the killer. Julian recognises Chang from his visions and follows him from the boxing club, but Chang seems to disappear into thin air before Julian can catch up to him. That evening, Julian brings Mai to meet Crystal, posing as his girlfriend. Crystal sees through the ruse, insulting Mai and demeaning Julian, pronouncing him to be sexually inferior to his dead brother. Julian is passive to Crystal’s verbal abuse, but his aggravation results in him viciously humiliating Mai afterwards, by making her remove her dress on the way home from the restaurant.
Two gunmen on motorbikes are sent to kill Chang at a restaurant, which results in several customers and a couple of Chang’s men being killed in the ensuing shoot-out. Chang kills one of the assassins, and pursues and apprehends the other. The surviving gunman leads Chang to his boss, Li Po, who has resorted to arranging assassination contracts as a means of providing for his disabled son. Chang then kills the gunman but spares Li Po after seeing his affection for his son. Chang finds Byron in a club and tortures him to reveal who ordered the hit.
Julian confronts Chang and challenges him to a fight at Julian’s boxing venue. Chang, an experienced boxer, quickly beats Julian, who does not land a single blow. Afterwards, Crystal tells Julian that Chang has figured out she ordered the hits. Fearful for her life, she pleads with Julian to kill Chang, the same way she asked Julian to kill his own father for her. She promises that after Julian kills Chang, they will go back home, and she will be a true mother to him. With his associate Charlie Ling, Julian infiltrates Chang’s home after shooting Chang’s guard dead, intent on ambushing Chang when he returns. Charlie informs Julian that Crystal instructed him to execute Chang’s entire family. Charlie murders the nanny of Chang’s daughter as she enters the home, but Julian kills Charlie before he can murder Chang’s daughter.
Chang and a police officer find Crystal in the hotel where she is staying. She explains how Julian killed his father with his bare hands, asserting to Chang that Julian is violent and deranged, blaming him for the violent crimes committed in the family’s name. Chang decides to punish her by cutting her throat. Later, Julian returns to the hotel and finds his mother’s corpse. In silence, he approaches her body and cuts open her abdomen before placing his hand inside of the wound.
Julian is last seen standing in a field with Chang, who appears to cut off both of Julian’s hands with his sword.