The evil sorceress Queen Bavmoda of Nockmaar (Jean Marsh) fears a prophecy that a child born with a particular birthmark will bring her down, so she imprisons all the pregnant women in her domain. The child is born and her mother (Sallyanne Law) persuades the midwife, Ethna (Zulema Dene), to smuggle the baby out of the castle. Bavmorda kills the mother and sends her lupine Nockmaar Hounds in pursuit of the midwife. She manages to evade the dogs for months and just before they catch up with her, she sets the baby adrift on a grass raft in the river. The midwife dead, Bavmonda sends her daughter Sorsha (Joanne Whalley) and an army led by masked General Kael (Pat Roach) to hunt down the child.
A village of Nelwyn people (Dwarves) down the river, are preparing for a festival when the baby is found and an aspiring sorcerer named Willow Ufgood (Warwick Davis) and his family take her in to raise her. At the festival, a Nockmaar Hound appears and attacks all the cradles it can find. The Nelwyn warriors kill the dog and Willow shows the baby to the village High Aldwin sorcerer (Billy Barty) and he sends Willow off to give her to a Dalkini (tall people) family.
At a crossroads, Willow, his friend Meegosh (David J. Steinberg), and some other accompanying Nelwyn come upon Madmartigan (Val Kilmer), a mercenary imprisoned in a cage, who offers to take the baby if they will free him. Most of the Nelwyn think that’s a good idea, but Willow and Meegosh protest, so the others go home. Running into Madmartigan’s comrade Airk Thaughbaer (Gavan O’Herlihy), who leads an army on the way to attack the sorceress, Willow agrees to free Madmartigan. On the way home, Willow and Meegosh find that Brownies have stolen the baby and go after them. They are captured by the Brownies but the Fairy Queen Cherlindrea (Maria Holvoe) sets them free and explains that the baby is Elora Danan (Kate and Ruth Greenfield and then Rebecca Bearman), the Princess to be of Tir Asleen. She gives Willow a magic wand and sends him to find Fin Raziel (Patricia Hayes), an aging enchantress.
Willow sends Megosh home and goes on with two Brownies, Franjean and Rool (Rick Overton and Kevin Pollak). Madmartigan appears again, dressed as a woman because he is hiding from his mistress’s husband Llug (Ron Tarr). Sorsha and Kael’s army arrives, but Madmartigan is found out and starts a brawl which allows Willow and Madmartigan to escape with the baby.
Madmartigan leads Willow to the lake where the enchantress Raziel dwells. They are captured, as is Raziel, who has been turned into a brushtail possum by Bavmonda. Willow uses his wand to restore her to human form, but the best he can do is a rook. Franjean accidentally doses Madmartigan with love potion. He declares undying love for Sorsha, but she is appalled. Willow’s party takes off and finds the remnants of Airk’s army after Bavmorda was finished with them. When the Nockmaar army turns up, Madmartigan takes Sorsha hostage, but she escapes. Willow’s group arrives at Tir Asleen to find it overrun with trolls. General Kael’s army arrives and Madmartigan and Willow try to fend them off. Sorsha, now in love with Madmartigan, defects.
Willow accidentally turns a troll into a two-headed Eborsisk Dragon. Kael kidnaps Baby Elora and returns to Nockmaar Castle. Bavmorda begins preparation to banish Elora from the world forever. Airk’s army and Willow’s join up but Bavmorda turns them all into pigs, but Willow protects himself with the wand and is able to restore Raziel to human form. She breaks Bavmorda’s spell and the army invades the castle. Kael slays Airk, but Madmartigan avenges him and Bavmonda is confined in the Ritual Chamber. She incapacitates Raziel and Sorsha, but Willow makes her think she has made Elora vanish. Bavmonda attacks Willow but ends up banishing herself, ending the conflict. Willow is given a spell book by Raziel, leaves Elora in good hands, and returns to his village.
The film was directed by Ron Howard and produced by Nigel Wooll and George Lucas, from a story by Bob Dolman and George Lucas. ILM did the visual effects, inventing a new digital morphing technology in the process. It received mixed reviews from critics and did all right at the box office. The character of General Kael was named after critic Pauline Kael and the Eborsisk Dragon after Siskel and Ebert, but they all gave the movie bad reviews. The score was penned by James Horner, with bits stolen from Mozart, Bartok, Grieg, and Prokofiev, and Schumann’s Third Symphony inspired Willow’s Theme.
George Lucas wrote the film expressly for Warwick Davis, who played Wicket the Ewok in the Star Wars movies. He was only seventeen at the time. Between 225 and 240 Little People actors were said to have been hired. A 13-pound animatronic baby was created. The real baby threw up on Warwick Davis. The red boots he wore in one scene were the same he wore as Reepicheep in Prince Caspian and the Voyage of the Dawn Treader. He also played Professor Flitwick in the Harry Potter series. He is the highest grossing supporting actor of all time. It’s not grand and breathtaking like Narnia or Harry Potter, but it’s charming and witty and Warwick Davis is an earnest and likable hero to root for. The dragon and fairies, though not abundant, are impressive.