At a fairground in rural Northern Ireland, a Provisional IRA volunteer named Fergus and a unit of other IRA members, led by a man named Maguire, kidnap a black British soldier named Jody after a female member of their unit, Jude, lures Jody to a secluded area with the promise of sex. They ransom Jody for the release of an imprisoned IRA member, threatening to kill him in three days if their demands are not met. While Fergus stands guard over Jody, the two bond, much to the chagrin of the other group members. Jody tells Fergus the fable of the Scorpion and the Frog.
Jody gets Fergus to promise to seek out Jody's girlfriend Dil in London should Jody be killed. The deadline set by Jody's captors passes with their demands unmet, and Fergus is ordered to take Jody into the woods to kill him. When Jody tries to escape, Fergus pursues him but cannot bring himself to shoot the fleeing man in the back. However, Jody is accidentally run over and killed by a British armoured personnel carrier as it moves in to attack the IRA safehouse. With his companions seemingly killed in the attack, Fergus flees to London, where he takes a job as a day labourer using the alias "Jimmy".
A few months later, Fergus finds Dil, working as a stylist at a hair salon. Later, they talk in a bar, where Dil is tormented by a drunken customer, and Fergus follows the pair, who return to Dil's apartment for sex. Fergus, consumed by guilt over Jody's death, pursues Dil, protecting her from her obsessive suitor, and soon begins falling in love with her. Their relationship progresses, but when the two prepare to become intimate in Dil's apartment, Dil removes her clothes and reveals that she is transgender. Fergus's initial reaction is of revulsion; he rushes to the bathroom to vomit after hitting Dil in the face, and then leaves her apartment. A few days later, Fergus leaves Dil a note in her mailbox apologizing and the two make up; despite Fergus's initial shock at Dil being transgender, he is still taken by her. Around the same time, Jude unexpectedly reappears and tells Fergus that the IRA has tried and convicted him of treason in absentia. She forces him to agree to help assassinate a British judge, and mentions that she knows about Fergus and Dil, warning him that the IRA will kill Dil if he does not cooperate.
Fergus continues to woo Dil. To shield her from possible retribution, he cuts her hair short and dresses her in Jody's old cricket uniform as a disguise. The night before the IRA mission is to be carried out, Dil gets drunk and Fergus escorts her to her apartment, where she asks him to never leave her again. Fergus stays with her, and admits his role in Jody's death. Dil, drunk, appears not to understand; however, in the morning, before Fergus wakes up, Dil restrains him by tying his arms and legs to the bed with stockings, leaving Fergus unable to complete the assassination. Holding Fergus at gunpoint with his own pistol, Dil demands that he tell her that he loves her and will never leave her; he complies, and she unties him.
Jude and Maguire shoot the judge, but Maguire is shot and killed in turn by an armed bodyguard. The vengeful Jude enters Dil's flat with a gun, seeking to kill Fergus for not taking part in the assassination. Dil shoots Jude repeatedly, telling her she is aware that Jude was complicit in Jody's death and used her sexuality to trick him. Dil finally kills Jude with a shot to the neck. She then points the gun at Fergus, but lowers it, saying that she cannot kill him because Jody will not allow her to. Fergus prevents Dil from shooting herself and tells her to go into hiding. He wipes her fingerprints off the gun, replaces them with his own, and allows himself to be arrested in her place. A few months later, Dil goes to visit Fergus in prison and asks why he took the fall for her. He responds, "As a man once said, it's in my nature," and tells her the story of the Scorpion and the Frog that he heard from Jody.
Stephen Rea as Fergus
Miranda Richardson as Jude
Forest Whitaker as Jody
Jaye Davidson as Dil
Adrian Dunbar as Peter Maguire
Tony Slattery as Deveroux
Jim Broadbent as Col
Birdy Sweeney as Tommy
Ralph Brown as Dave
Andrée Bernard as Jane
Joe Savino as Eddie
Breffni McKenna as Tinker
Jack Carr as Franknum