Joe Kavanagh tells an Alcoholics Anonymous meeting about how long it took him to admit that he had a problem.
Joe and his friend Shanks run a football club on limited resources, and spend some time gathering the various players: Hooligan, Doc, Zulu, Robbo, Mojo, Ty, Scrag, Liam and others. When picking up Liam, Joe nearly has an accident after social worker Sarah Downie drops some rolls of wallpaper in his path. She has an appointment with Liam, but Joe tells her he's busy.
At the football practice, they find out that the opposing team is also wearing German colours, and the referee makes Joe's team play barechested. Driving home, Liam tells Joe about his domestic problems with his wife Sabine and son Scott before having an altercation with the McGowan family, which Joe witnesses. Driving back, Joe sees Sarah and offers to help her decorate her flat.
Joe and Shanks go to Sarah's flat, and Shanks admits that he's never hung wallpaper. They talk Sarah out of papering the ceiling, and the job goes well before Joe spots a man from the local council taking pictures of him working. He runs out and tips paint over his car. Afterwards, Joe and Sarah get to know each other. He refuses her offer of wine, admitting that he's an alcoholic.
Joe's benefits are stopped for a week, despite Sarah writing to the council to say that Joe is a personal friend who did the decorating free of charge. He goes to the Mayfield Health Centre to thank her and hesitantly asks her out. After a bowling session, he takes her home, but she accidentally locks herself out. Back at Joe's flat, they listen to his tape of Beethoven's violin concerto (the only one out of a stolen batch that Joe was unable to sell in the pub). He tells her that he stopped drinking after beating up his lover, and has never forgiven himself. Joe and Sarah kiss.
Liam is beaten up by the McGowan clan during a match. Sabine is expelled from the health centre after being caught with stolen prescription pads. Liam accuses her of prostituting herself to buy drugs.
Joe drives Sarah to see Sabine and Liam. She is stopped by a client, so Joe goes ahead and finds Sabine injecting herself with heroin. She tells him that the McGowans took Liam with them. Joe runs round to McGowan's snooker hall, and is told that Liam has run up considerable debts, largely due to Sabine dealing McGowan's drugs while Liam was in prison and keeping the money. McGowan says that breaking Liam's legs will settle the debt. Joe offers to do a job for McGowan instead.
Joe goes to Kintyre and is instructed to pick up a car. He accidentally sets the alarm off. Shanks accuses him of collusion with drug dealers, and naïveté.
When walking with Sarah, Joe gives her earrings and an engagement ring. She refuses to accept it and runs off. Joe angrily throws it into the river. Later, she visits his flat for a reconciliation. She confesses to her colleague Maggie that she's pregnant, and Joe doesn't know.
Liam and Sabine tell Sarah their lives have improved since Joe "sorted out" McGowan. Sarah asks Joe what he meant, and he tells her. Since she has to deal with the after-effects of drug abuse, she is appalled and storms out.
Unable to reach Shanks, Joe goes to see Liam and gives him £300 to leave, saying that he can't bring himself to do another run for McGowan. He goes to the health centre to try to explain things to Sarah, but she refuses to see him. He tells McGowan that he won't be working for him any more, and one of his sons threatens to rape Sarah. Joe runs out and smashes McGowan's car with a baseball bat.
Joe goes back home, bottles jangling in a bag. By the time Liam reaches him, he's completely incoherent. Through the window, Liam sees the McGowans approaching the flat, and hangs himself. The McGowans see this and run off.
Joe and Sarah both attend Liam's funeral, though they stand apart. Finally she lets him walk beside her.