Emma Townshend's song "We Can Fly Away" was the theme song for the film.
An American businessman, Jack Woods (Randy Quaid), ostensibly wants to spend a calm holiday in the sleepy Irish town Kerry and rents a cottage there. During a hike, he sees Irish beauty Kathleen Fitzpatrick (Orla Brady) swimming naked. Kathleen catches him and chases him off, but Jack is smitten with her beauty. That evening, Jack tries to drown his sorrows in Irish poitín, when he has an encounter with an invisible leprechaun. They struggle for the bottle of poitín, and Jack falls, knocking himself unconscious. The next morning, he sees the little man again and chases him to a nearby river, where the leprechaun falls in. Jack jumps in after him, saving his life (because water is the only thing that can kill the immortal leprechauns), then Seamus Muldoon (Colm Meaney), the saved leprechaun, becomes Jack's new friend. Seamus introduces Jack to his wife Mary (Zoë Wanamaker) and his son, Mickey (Daniel Betts), and shows him the mystical world of the leprechauns.
The "solitary fairies" (which includes leprechauns) love to play tricks on others, especially on the snobbish "trooping" fairies. The leprechauns and the trooping fairies have been enemies for ages, but the Grand Banshee (Whoopi Goldberg) has decreed that they must stop fighting each other. Jack gets used to the little people he shares the house with, because they help him to get to know Kathleen.
Jack offers to drive Kathleen's cart for her in a beach race because she's not allowed to on account of her gender. He wins and convinces Kathleen to take him on a tour of the local environs. While on their walk together, they kiss.
Meanwhile, Mickey, along with his friends Sean Devine (Tony Curran) and the brothers Jericho (Kevin McKidd) and Barney O'Grady (Kieran Culkin) sneak into a masked party in the flying castle of the trooping fairies. There Mickey sees the fairy-princess, Jessica (Caroline Carver), the daughter of the fairy-king Boric (Roger Daltrey) and queen Morag (Harriet Walter). Jessica eventually finds out that Mickey is a leprechaun, but they have already fallen in love. Jessica's hot-headed cousin, Count Grogan (Jonathan Firth), discovers their presence, and the leprechauns flee.
Later Count Grogan seeks out Mickey and attempts to fight with him, but Mickey declines. Sean steps in and battles Count Grogan, eventually losing. The Grand Banshee appears and takes Sean's life as punishment for breaking her decree. Mickey attacks Count Grogan, killing him, too. After Jessica's parents learn that Mickey has killed Count Grogan, they send her with her governess, Lady Margaret (Phyllida Law), to a hidden underwater-castle. Mickey eventually finds her, rescues her, and flies with her to his uncle Sir Aloysius Jantee (Stephen Moore), the butter-fairy. Jessica's parents think Mickey kidnapped her and they start a war with the leprechauns. The Grand Banshee continues to take their lives.
Jack and Kathleen have a problem too, because she finds out that he is in Ireland to buy up homes in Carrick for his company to build a holiday-park. Jack does not want to do that any more (and loses his job because of it), but Kathleen does not believe a word he says.
In the human-world nature starts to collapse: in the summer it starts snowing and there is torrential rain. This happens because the fairies aren't taking care of nature any more because of the war. Jack and Kathleen decide to help Jessica and Mickey to seek out the Grand Banshee and ask her to help them end the war. The Grand Banshee reveals to them that Nature is dying because of the war and if it doesn't stop, soon, everything will be destroyed. She also says she cannot stop the leprechauns and trooping fairies from doing what they really wanted to do.
As the war escalates, Mickey and Jessica decide to do something radical: they obtain a poison from the butter-fairies and threaten to take it if their parents won't stop the war. Their parents took them seriously but were unable to make peace, so they take the poison. Their bodies are brought before their parents who immediately become distraught. Jack convinces the warring parties to make peace. Both Muldoon and Boric agree. Kathleen immediately rushes to give an antidote to the lovers but an attack-tunnel dug by general Bulstrode (Frank Finlay) collapses. Kathleen brakes her carriage to avoid the pit. The vial with the antidote flies from her hands and breaks. Jack runs to help and falls into the pit, knocking himself out. Kathleen panics until she learns that he's alright. The Grand Banshee says she can still save them, but only if everyone agrees to peace. Eventually they all do. The Grand Banshee then brings back not only Jessica and Mickey, but all of the lost leprechauns and fairies (with the exception of Count Grogan who the Great Banshee decides to keep so there wouldn't be trouble caused because of him). In the end Mickey and Jessica marry, Jack and Kathleen are reconciled, and the long-lasting war is finally over.Daniel Betts as Mickey Muldoon
Caroline Carver as Princess Jessica
Colm Meaney as Seamus Muldoon
Zoë Wanamaker as Mary Muldoon
Roger Daltrey as King Boric
Harriet Walter as Queen Morag
Randy Quaid as Jack Woods
Orla Brady as Kathleen Fitzpatrick
Whoopi Goldberg as the Grand Banshee
Phyllida Law as Lady Margaret
Kevin McKidd as Jericho O'Grady
Kieran Culkin as Barney O'Grady
Stephen Moore as Sir Aloysius Jantee
Tony Curran as Sean Devine
Frank Finlay as General Bulstrode
Jonathan Firth as Count Grogan