Hannah (Weaving) is a veteran of the British army who is working as an investigator for the Royal Irish Constabulary (RIC). While drunkenly interrogating a member of the Young Irelander movement, Hannah loses his temper over the prisoner’s refusal to identify his accomplices and strangles him. He is subsequently arrested and sentenced to hang.
Martin Feeney (Frecheville) is a former Connaught Ranger who served in Afghanistan and India and who is returning to Connemara, in the west of Ireland, in 1847. On his arrival home, the country is experiencing the worst year of the Great Famine. Feeney finds his mother has died of starvation and his brother has been hanged, having stabbed a bailiff during his family’s eviction. Feeney stays with Ellie (Greene), his brother’s widow, who is squatting with her three children in one of the few houses still standing, and makes plans to emigrate to America and take his brother’s family with him. Before they can leave, agents of the local Anglo-Irish landlord and members of the RIC arrive to remove them from the cottage. During the eviction, the house roof is destroyed, Feeney is arrested and his nephew is killed. Feeney is brought for interrogation by the RIC but manages to kill his captors and burns down their barracks. He returns to the house to find his sister-in-law and her daughter have died of exposure following a snowfall.
The destruction of the barracks draws the attention of British authorities, who suspect Feeney is responsible. Feeney is revealed to have deserted the Rangers in Calcutta and Pope (Fox), an arrogant British officer, is assigned to apprehend him with the aid of Hannah, who served with Feeney in Afghanistan. Hannah is compelled to assist in the hunt with the promise he shall be spared the noose, although his feelings are conflicted as Feeney saved his life during the war. They are joined by the young idealistic English private Hobson (Keoghan), and later hire Conneely (Rea), a knowledgeable local, to act as an Irish translator. They track Feeney as he hunts down those he blames for the deaths of his family: a local rent collector, the judge who sentenced his brother, and a Protestant preacher who is inflicting Souperism by offering soup to the starving on condition they convert.
Pope’s group catch up with Feeney at the home of Cronin (McArdle), the land agent who oversaw his family’s eviction, but he escapes after Hobson fails to shoot him when he has the chance. Reasoning that Feeney’s next target is the landlord, Lord Kilmichael (Broadbent), the group travels to the estate house to warn him. Putting a large bounty on Feeney’s head and surrounding himself with armed police, led by the violent Sergeant Fitzgibbon (Dunford), Kilmichael vows to accompany his grain harvest to the railway station, where it will be shipped abroad. Outraged by the sight of people starving outside the gates, Hobson threatens a policeman’s life to allow the starving people crowded outside the guarded gates to enter for food. Although Hannah and Pope try to reason with him, Hobson is shot dead by Fitzgibbon and the police. Kilmichael, accompanied by the armed police and the remainder of Pope’s posse, stays at an inn en route to Dublin. Feeney attacks in the night but falls for a trap set by Pope, who is sleeping in Kilmichael’s bed. When Hannah cannot bring himself to shoot him, Feeney is able to again escape. As he flees, Feeney takes Lord Kilmichael as a hostage and Hannah is arrested by Fitzgibbon.
The following morning, after he refuses to speak under interrogation, Hannah is brought out to the yard to be summarily executed by firing squad but is saved when Feeney attacks. After the soldiers shoot him from his horse, they are stunned to find that they have instead killed Lord Kilmichael, who had been dressed in Feeney’s clothes and mounted on his horse. In the chaos, the starvelings storm the yard and take the grain, a number of local bounty hunters turn against Kilmichael’s men, and Hannah is freed by Conneely. Fitzgibbon shoots Feeney but is choked unconscious in a brawl. Hannah steals a horse and attempts to get the wounded Feeney to safety, but Feeney is shot fatally by Pope and dies shortly after their escape. As he is dying, he laments the fate of his family and his country and implores Hannah not to continue the fight, but to instead go to America as Feeney had once intended to do. Seeking vengeance, Hannah follows the badly wounded Pope as he returns to Dublin but stops at a fork in the road, where a group of people bound for America have gathered. Among them is Feeney’s last remaining relative, his young niece. Pope rides down one path, as the emigrants start down the other. The film ends without showing which path Hannah takes.