Hannah Hugo Weaving is a battle-hardened investigator for the Royal Irish Constabulary, and his temper flares during a drunken interrogation when a prisoner refuses to name his accomplices, leading to a fatal strangulation. This act lands him in trouble and he is ultimately arrested and sentenced to hang.
Feeney James Frecheville is a former Connaught Ranger who has served in Afghanistan and India. He returns to famine-ravaged Connemara in 1847 to find unbearable hardship: his mother has starved to death, his brother has been hanged after a violent eviction, and he takes shelter with Ellie Sarah Greene, his sister-in-law, who is living with her three children in a squat. Feeney plans to emigrate to America and bring his brother’s family with him, but their fragile refuge is jeopardized when agents of the Anglo-I Irish landlord and the Royal Irish Constabulary arrive to evict them. The eviction turns violent; the roof is ripped away, Feeney is arrested, and his nephew is killed. He is brought in for interrogation, but he fights back, killing his captors and burning the barracks before returning to the house to discover that his sister-in-law and her daughter have died of exposure after a snowfall.
The brutal events draw the attention of the British authorities, who suspect Feeney’s involvement. It is revealed that Feeney deserted the Rangers in Calcutta, and Captain Pope [Freddie Fox], an arrogant officer of the 68th Regiment, is assigned to capture him with the aid of Hannah, who had once served with Feeney in Afghanistan. Hannah is pressured to assist in the hunt with the promise of sparing his own life, yet his feelings are divided because Feeney once saved him in the war. They are joined by the idealistic English Private Hobson [Barry Keoghan] and later hire Conneely [Stephen Rea], a knowledgeable local, to act as an Irish translator. Together they track Feeney as he targets those he holds responsible for his losses: a local rent collector, the judge who sentenced his brother, and a Protestant preacher who is accused of performing Souperism by offering soup to the starving on the condition of conversion.
Pope’s group finally closes in on Feeney at the home of Cronin, the land agent who oversaw the eviction, but Feeney escapes when Hobson hesitates to shoot him. Concluding that Feeney’s next target will be the landlord, Lord Kilmichael [Jim Broadbent], the party travels to the estate to warn him. A large bounty is placed on Feeney’s head, and Kilmichael surrounds himself with armed police, led by the violent Sergeant Fitzgibbon [Moe Dunford], who remains a looming threat. The sight of starving people outside the gates provokes Hobson to risk everything and plead for the crowd to be allowed in for food. Hannah and Pope try to reason with him, but Hobson is shot dead by Fitzgibbon, and Kilmichael continues his journey with the force toward Dublin. Feeney attacks during the night but falls into a trap set by Pope, who is sleeping in Kilmichael’s bed. When Hannah cannot bring himself to shoot Feeney, the trap succeeds and Feeney escapes again. As he flees, Feeney takes Kilmichael hostage and Hannah is arrested by Fitzgibbon.
The next morning, Hannah is ordered to stand before a firing squad, but Feeney interrupts the execution, drawing bullets away from his ally by force. The soldiers shoot at the wrong target and kill Lord Kilmichael, who has been wearing Feeney’s clothes and riding Feeney’s horse. In the ensuing chaos, the starving masses surge into the yard to seize the grain, and Conneely helps free Hannah. Fitzgibbon fights Feeney and is choked into unconsciousness, while Hannah steals a horse and tries to carry the wounded Feeney to safety. Feeney is fatally shot by Pope as they make a last escape, dying with a lament for his family and for his country, and urging Hannah not to continue the fight but to seek a different life in America, as Feeney once intended.
In pursuit of vengeance, Hannah follows Pope toward Dublin but pauses at a fork where a group of emigrants is gathering—so the choice between vengeance, home, and renewal remains unresolved. Among the travelers is Feeney’s young niece, a mute reminder of what is at stake, and the film closes without revealing which path Hannah ultimately chooses.