At an Alcoholics Anonymous meeting, Joe Kavanagh [Peter Mullan] recounts a painful chapter from his past, a period that tests his struggle with sobriety and drags him into a world where care and danger blur. On the way to pick up Liam [David McKay], a former addict whom Joe cares about, for a football match, they are interrupted by Sarah [Elaine MacKenzie Ellis], a health visitor involved with Liam, his girlfriend Sabine [Anne-Marie Kennedy], and their young son Scott. After dropping Liam off, Joe witnesses Liam and Sabine clash with a gang of thugs outside their home, a confrontation that already hints at the trouble brewing beneath their seemingly ordinary lives.
Back at a health center, Joe notices a social worker taking photos of him at work, a breach of welfare policy that fuels his anger. He lashes out, attacking the car with his painting supplies in a volatile display of rage. Later, during a family dinner, he tells Sarah the truth: he is a recovering alcoholic. The incident prompts a formal call to social services, but Sarah speaks in his defense, explaining that his work had been a favor, not a paid gig. Grateful, Joe visits the health center to thank Sarah and asks her out on a date. She is wary about dating him, wary of his unpredictable behavior, but agrees to give it a chance.
After the date, Sarah locks herself out of her flat, and Joe offers to have her stay with him, insisting that he isn’t trying to sleep with her. As they share stories from their lives, Sarah presses Joe on why he stopped drinking, and he reluctantly reveals a brutal incident in which he beat a former partner while intoxicated. The revelation deepens the tension between them, but also humanizes Joe, showing the weight he carries from his past.
The next day, at a football match, the same thugs who harassed Liam earlier rear their heads at the pitch. Liam claims the trouble stemmed from a bar fight, but Joe fears a relapse into old habits. Back in town, Sabine creates a scene at the health center by refusing to extinguish her cigarette, and she later draws Sarah’s attention again when she’s caught stealing a prescription pad. At home, Liam confronts Sabine, accusing her of infidelity after finding condoms in her purse, and the atmosphere crackles with mounting suspicion and danger.
Joe arrives to find Sabine preparing to inject heroin, and he reluctantly helps her with the injection. Sabine reveals that the thugs have taken Liam to McGowan, a drug dealer and criminal whom Joe knows from his youth. Liam confides that he stopped dealing heroin after prison, but Sabine has continued, pulling Joe and Liam deeper into debt to McGowan. McGowan’s men threaten to cripple Liam if the debt isn’t paid, and Joe responds with a warning of his own. But McGowan proposes a harsher solution: Joe could start dealing drugs to settle the debt.
Back home, Joe lies to Sarah, telling her that the problem has been resolved. Soon after, he spends a night with Sarah, but the next day he heads to Kintyre to collect a car believed to contain drugs. The relationship soon strains further when Joe gives Sarah a pair of earrings and a ring, declaring his love. She rejects the ring, and Joe, confused and angry, discards it into the river. She later returns, apologizing, and the two try to pick up the pieces of their fragile bond.
Around this time, Sarah tells her co-worker Maggie [Lorraine McIntosh] that she is pregnant, a revelation that threads through the decisions each character makes. In a park, Sarah meets Sabine and Liam, where Sabine unintentionally exposes Joe’s lie about paying off McGowan. Liam reveals to Sarah that Joe’s payments were merely extended, not settled, and Sarah accuses him of lying. She confronts Joe at his flat, pressing for details about his dealings with McGowan, and Joe attempts to placate her, though Liam soon interrupts with a warning.
Sarah’s anger deepens as she learns about Joe’s drug running, and she accuses him of risking everything because he lacks other means to protect Liam. Joe maintains that he’s doing what he must, but the evidence—gifts bought with an advance from McGowan—burns a hole in their fragile trust. After she leaves, Joe heads to Liam’s flat to hand over money to help him escape town and to bow out of the second job for McGowan. He then goes to Sarah’s door, but reconciliation remains out of reach.
The confrontation with McGowan escalates at his snooker hall. Joe makes it clear he will not take the second job, and McGowan attempts to eject him from the premises. When one of McGowan’s thugs makes a crude remark about Sarah, Joe’s temper erupts, and he viciously beats McGowan’s men. He recognizes that he has sealed his fate and, in a fatal mix of sorrow and desperation, buys liquor and retreats to his home.
Liam arrives later, finding Joe intoxicated as McGowan’s men close in. Liam warns that they are being hunted, but Joe lashes out at Liam, accusing him of not following orders. Desperate and cornered, Liam ties a rope around his neck and jumps from a window. Joe awakens too late to help, and Liam dies in his arms, a moment that shatters the fragile peace Joe had managed to hold together.
At Liam’s burial, Joe and Sarah encounter each other again, and this time they walk away together, perhaps toward a future they can only begin to reconstruct. The film closes on a somber note, focusing on the costs of violence, addiction, and loyalty, and on the fragile threads that keep people anchored when the world around them starts to come apart.