A gunfight breaks out between the police and Charlie Burns’ (Guy Pearce) gang, which ends with the deaths of all of the gang members except for Charlie and his younger brother Mikey. Captain Morris Stanley (Ray Winstone) makes a proposition to Charlie: with Mikey in custody, Charlie has 9 days to kill his older brother, Arthur (Danny Huston), then he and Mikey can go free. During a raid, the police capture some Aborigines who, when questioned, claim that the “white man” (Arthur) they seek is actually a “dog man” and no one goes near his cave.
Charlie rides in search of Arthur. He comes to the charred remains of the Hopkins home, a family that was murdered and the wife raped by the Burns gang. Along the way, he encounters an inebriated old man named Jellon Lamb (John Hurt) in a cantina where the owner has been speared to death. Charlie realizes that Lamb is a bounty hunter in pursuit of the Burns brothers and knocks him out. Later on, Charlie awakes and is speared in the chest by a group of Aboriginal men standing over him. Just before passing out, he sees the man who speared him get shot in the head.
In town, Eden Fletcher (David Wenham), who hired Morris to “clean up” the area, orders that Mikey be given one hundred lashes as punishment for the rape and murder of the Hopkins family. Stanley is aghast at this, not only because he believes Mikey is not responsible for his actions and the flogging will kill him, but also because it will break his deal with Charlie and bring the Burns gang’s revenge upon him and his wife. Stanley sends Sergeant Lawrence away with tracker Jacko (David Gulpillil) and other men to “investigate” the reported slaying of Dan O’Riley (the dead man in the cantina) by a group of Aborigines.
Charlie wakes up in the camp of his brother Arthur, located in caves among desolate mountains. Arthur’s gang consists of Samuel Stoat (Tom Budge), a woman named Queenie (Leah Purcell) who tends to Charlie’s wound and a muscular Aboriginal man called Two-Bob (Tom E. Lewis). As he recovers from his wounds, Charlie has several opportunities to kill his brother, but does not. He lies and tells Arthur that Mikey is not with him because he has met a woman.
Captain Stanley attempts to defend Mikey at gunpoint from the bloodthirsty townspeople, but is overruled once Martha arrives, insisting on revenge for her dead friends. Mikey is flogged and fatally wounded. The townspeople grow tired at the excessive display, Martha faints and Morris flings the bloody whip at Fletcher, who fires him. Back at the abandoned cantina, Sergeant Lawrence and his men have found and butchered a group of Aborigines. Arthur and Two-Bob find Lawrence’s group while they sleep and kill Jacko and Sergeant Lawrence. Before Arthur stomps Lawrence to death, Lawrence tells Arthur that Charlie has been sent to kill him.
Jellon Lamb enters Arthur’s camp and ties up Samuel and Charlie, both of whom are sleeping. Lamb is shot in the stomach by the returning Two-Bob. Arthur stabs Lamb in the heart; Charlie points his revolver at Arthur, but instead shoots Jellon in the head, putting him out of his misery. He finally informs Arthur that Mikey is in custody and is set to hang. Charlie decides to break out Mikey; Arthur, Samuel and Charlie ride into town dressed in the clothes taken from the officers Arthur and Two-Bob had killed, while Two-Bob poses as an Aborigines they have captured. Once at the jail, the men free Mikey, and Charlie and Two-Bob ride off with him. Arthur and Samuel remain to behead the two officers inside the jail. The badly injured Mikey dies in Charlie’s arms.
Morris fears retribution and loads several guns, but he and Martha let their guard down to have a peaceful Christmas dinner. Once they begin, Arthur and Samuel shoot open the door and invade their home. Arthur pulls Morris into another room and brutally beats him. Samuel drags Martha inside, and Arthur has Morris watch as Samuel begins to rape Martha. Charlie walks in and informs Arthur of Mikey’s death; Arthur ignores him and encourages Charlie to listen to Samuel’s beautiful singing. Charlie shoots Samuel point blank in the head, then shoots Arthur twice, disgusted by his conduct. Arthur staggers out of the house and Charlie follows a trail of blood to find him seated on the ground. Arthur asks Charlie what his next move is, and dies.