A young woman named Sophie Hatter is the eldest of three daughters living in the town of Market Chipping in the magical kingdom of Ingary, where many fairy-tale tropes are accepted ways of life. She is very deft with the needle and makes the most beautiful hats and dresses. She unknowingly talks life into objects. As the eldest, she is resigned to the "fact" that she will have no chance of finding her fortune, accepting that she will have a dull life running the family hat shop—until she is turned into an old crone by the Witch of the Waste, a powerful witch who has mistaken Sophie for her sister, the current love interest of Wizard Howl. Sophie leaves the shop and finds work as a cleaning lady for the notorious Howl, famed in her town for eating the hearts of beautiful young women.

Sophie soon learns that Howl, a rather self-absorbed, dishonest and cavalier but ultimately good-natured person (and an extraordinary wizard), spreads these malicious rumours about himself to ensure his privacy and so that the king won't think highly of him, which would mean more work and more responsibility for Howl. The door to his castle is actually a portal that opens onto four different places the moving castle Sophie first encounters in the hills above Market Chipping, the seaside city of Porthaven, the royal capital of Kingsbury, and Howl's boyhood home in Wales, where he was named Howell Jenkins.

Sophie strikes a bargain with Howl's resident fire demon, Calcifer if Sophie can break the contract Howl and Calcifer have signed, then Calcifer will return Sophie to her original form. Part of the contract, however, stipulates that neither Howl nor Calcifer can disclose the terms of the contract to any third party. Sophie tries to guess the specifics of the contract, while Calcifer supplies frequent hints which Sophie usually doesn't pick up. Howl realizes that Sophie is under a spell and secretly attempts to remove the curse; when met with failure, he comes to the conclusion that Sophie wants to remain an old woman.

Howl's apprentice Michael Fisher runs most of the day-to-day affairs of Howl's business, while Howl chases his ever-changing paramours. Howl and Michael court Sophie's two younger sisters Lettie and Martha, respectively. Martha, the youngest, was sent to study magic, while the middle sister, Lettie, was apprenticed at a local bakery. Disguising herself as Lettie, Martha arranged for the two of them to switch places, as Fanny (Martha's mother and Sophie and Lettie's stepmother) did not take their wishes into account when arranging their apprenticeships.

When Prince Justin (the King's younger brother) goes missing while searching for Wizard Suliman (Benjamin Sullivan, also from Wales), the King orders Howl to find Suliman and Justin and kill the Witch of the Waste. Howl, however, has his own reasons to avoid seeking a confrontation with the Witch of the Waste; the Witch, a jaded former lover, has laid a curse on him. Howl attempts to weasel out of it by having Sophie, pretending to be his mother, petition against the appointment— but to no avail. Instead of blackening Howl's name like he asked Sophie to do, she gets him appointed the new Royal Wizard, the post he has been trying to avoid for years.

Howl continues to avoid the Witch of the Waste until she lures Sophie into a trap; believing that the Witch has taken Howl's current love interest, Lily Angorian, captive, Sophie goes to save her and is in turn captured by the Witch of the Waste. Howl comes to save Sophie and defeats the Witch of the Waste. He knew all along that Miss Angorian was actually the Witch's fire demon in disguise. The Witch's fire demon had, over the years, taken control of the Witch and, once the Witch is defeated, tries to take Howl's heart to stay alive. Howl is able to stop the demon but falls and hits his head. Sophie uses her talent of talking things to life to break the contract between Howl and Calcifer without killing either of them. Sophie has been unconsciously retaining the spell on herself, however in her concern for Howl the spell lifts and she returns to her proper age. When Howl awakens, he destroys the witch's fire demon. This breaks the curse on Wizard Suliman and Prince Justin, whom the Witch had fused together in an effort to create a 'perfect human' (Howl's head was meant to complete the being) to use as a puppet to rule Ingary.

Sophie and Howl admit they love each other, and Howl suggests they live happily ever after.