The film is set in Kimmage on the south side of Dublin, Ireland, and opens with 53-year-old bakery deliveryman Hubert Flynn (Pete Postlethwaite) going for a drink at his local pub. Hubert complains of feeling off-colour, and ominously says that he "has a feeling there's worse to come". He goes home, and overnight turns into a white rat.
The next morning, whilst a news report of the incident is read on the wireless, Hubert's family sit around the breakfast table surveying the rodent that is Hubert. Whilst his wife, Conchita (Imelda Staunton), shouts at the rat for not finishing his breakfast, earring-wearing freelance journalist Phelim Spratt (David Wilmot) arrives at the residence. Conchita's instinct is to throw him out, but she is beguiled by Phelim's suggestion that he won't be writing an article, but rather helping her write her own book which would probably be turned into a film.
Conchita introduces Phelim to Hubert, their daughter Marietta (Kerry Condon), and son Pius (Andrew Lovern). Phelim convinces Conchita to let him move in so he can "capture the true day-to-day intimate human story". Conchita allows him to use Hubert's bedroom, showing him the bed where Hubert's transformation took place - his delivery uniform spread out where he had been laying down reading the newspaper.
At this point, Conchita's brother, Matt (Frank Kelly) arrives. Conchita describes him as a "rock of sense", saying that "If anyone can solve the problem, it's Matt". Matt declares that Hubert's transformation will have "serious repercussions" for everyone, and describes the common rat's tendencies to nibble furniture, have relatively poor personal hygiene, and be unable to find meaningful employment. Hubert's hygiene becomes an issue when Conchita find rats droppings on one of her doilies. Pius, intending to be a priest, quotes the biblical passage about man having dominion over "every creeping thing that creepeth over the earth", and suggests they kill Hubert. Marietta is horrified, and Conchita, though frustrated with Hubert, says she doesn't think she could kill him.
Phelim suggests Conchita to take Hubert out in public, and, putting his rat cage in a baby pram, she takes him to the local pub. Hubert escapes from his cage and runs out the door, leading Conchita, Marietta, and Pius on a chase through the streets of Dublin. After they catch him and take him home, Conchita handles Rubert roughly and he sinks his teeth into her thumb. Conchita has Marietta put Hubert in the upstairs hot press as punishment, but she leave the door open for him, and he escapes into the house. Hubert spies Phelim hiding something in a cupboard in the toilet before being recaptured.
A family meeting is called, and everyone airs there thoughts in turn. Pius wants to put Hubert in the AGA. Marietta is confused, and considers putting poison in Hubert's food, but eventually votes for leaving him as he is. Phelim is mainly concerned about the book, and opines that they could easily replace Hubert with a pet store rat, but votes for not killing him. Conchita decides that, despite what Hubert has done to her, she can't kill him. Matt proposed they take Hubert somewhere he can live amongst his own kind, and has in mind a maggot farm some forty miles away. The family take Hubert there and leave him, but not after Marietta has put a red ribbon around his neck, so they will know him.
The story jumps forward. It is Christmas, and snowing. Conchita fears that Hubert may have been killed by other rats, and wants to go and look for him, but Phelim tells there is no point. Hearing a scratching at the door, Conchita sends Marietta to check, and she find Hubert - still wearing his ribbon - has walked all the way home. Hubert is accompanied by a second rat, much to Conchita's annoyance. Matt points out the second rat is a black rat, and, describing the species as a carrier of bubonic plague, uses an oven glove to drop it out the kitchen window.
Marietta says they should be proud of Hubert, for having made such a long journey to be home for Christmas. Conchita then finds Hubert apparently dead, but Matt detects a faint pulse. Conchita sends Phelim to get a doctor, and Pius to get Father Geraldo, a priest known for performing exorcisms. The doctor (Geoffrey Palmer) arrives, and examines Hubert. He diagnoses a fever and advises Conchita to get his temperature down, so she has him placed in the refrigerator. In the meanwhile, Father Geraldo (Niall Toibin) arrives. There is some discussion over whether he should perform the Last Rites or the exorcism first, and, opting for the latter, Geraldo approaches the fridge with a crucifix and strikes it with a fire-poker. The fridge shudders and Hubert steps out, restored to human form.
The next morning, Marietta brings Hubert his breakfast, and asks him what it was like being a rat. He tells her he missed his cigarettes, but that there were compensations; he should see in the dark and knew when it was going to rain. In the meantime, Phelim is still concerned about the book. Matt is surprised - he had thought that Hubert bursting from the fridge would have been the ideal climax to the story, but Phelim believes that, with Hubert no longer a rat, no-one will believe the story for lack of evidence. Father Geraldo never looked in the fridge, and the doctor saw a rat but he only had their word it was Hubert. Phelim plans to have the book brought out as soon as possible, and Conchita tells Hubert he will be kept confined to his bedroom, incommunicado, for the next six weeks.
Marietta talks to her father while Pius boards up his bedroom window. He tells her that the maggot factory wasn't so bad, and he has the black rat he brought back with him in the cage that was previously his. Hubert explains that her name is Benazir, and she is a bandicoot rat from Colombo.
Phelim and the family - minus Hubert - go to Mass, where Phelim whispers a new plan to Conchita: they stage a reenactment by putting another rat in the fridge, get Father Geraldo to perform another exorcism, and switching the rat for Hubert through a false back in the fridge. While they procure two white rats from a pet store, Hubert bangs on the locked door to his room, shouting that he needs to go to the toilet. He is overheard by snooping neighbour Daisy (Veronica Duffy), who confronts Conchita and threatens to fetch the police.
Meanwhile, Hubert finishes using the toilet, and washes his hands. He recalls his experiences as a rat, and finds what Phelim was hiding in the cupboard - a folder of documents which he hides under his jumper as he is ushered back to him room. With Daisy threatening to spoil their plans, Conchita wants to move Hubert out of the house. Phelim suggests they commit him to a lunatic. Conchita applauds this idea and goes to tell Hubert.
At this point, the police arrive, and enter the house when Marietta screams from Hubert's bedroom. She has found Hubert's clothes lying empty again, and a letter addresses to her. The letter, from Hubert, describes his feeling that he is going to change back into a rat. He intends to go back to the maggot factory, and describes the start of his transformation before the letter terminates in a squiggly line running off the page.
The family dog barks at something under the bed, and a white rat runs out and escapes out the front door. The household searches for the rat, but fails to find it. As the police leave, Daisy approaches smugly, holding the rat. She happily hands it over, stating that she does not believe it is Hubert. Back inside, Pius intends to burn the rat in the AGA, and tries to wrestle it away from Marietta. Phelim, taking Pius' side, snatches the rat away and gets bitten in the progress. As he prepares to drop the rat into the oven, Hubert appears in the doorway and tells them to stop. He explains that the rat they have is actually Conchita, and that he believes that he passed something onto her when he bit her thumb. Phelim suddenly realises the disturbing implications of the bite on his finger.
Hubert continues to explain that he intended to escape the house, and laid his clothes out and wrote the letter to put everyone off the scent. He hid under the bed, and, when Conchita entered, watched as she turned into a rat as he had done previously. Hubert reveals the dossier that he had found in Phelim's hiding place. It contains a typescript of the book, which was never intended to be a book about a family's loyalty to their father, but instead about a family's greed and desire to be rid of him. The family turn on Phelim, though Marietta points out there was some truth, since they did discuss how to be rid of Hubert. Hubert agrees, and blames the book for bringing greedy thoughts to the house, and nearly ruining the family. He burns the manuscript, and the family throw Phelim out of the house.
Marietta asks if she would summon Father Geraldo, but Hubert says he doesn't believe Geraldo was responsible for his turning back into a human. He tells her he believes he had come back simply because he had "served his time and learnt his lesson", and Conchita will be restored eventually, as a better person.
The movie ends with the entire family back at the pub. Hubert and Conchita - also once again restored to her human form - are singing a song on a karaoke machine. From a hole in the skirting board, the scene is watched by a rat. A rat with Phelim's earring.
- Rat on the Internet Movie Database