魔法と科学が共存する世界のとある王国。
社会全体が愛国主義に傾倒していく中で、町では日々戦場に向かう兵士たちを送る壮大なパレードが繰り広げられ、政治とは無縁の魔法使いまでもが戦争に加担しつつあった。
しかし、18歳のソフィー(倍賞千恵子)にとって、そんな社会情勢は関係ナシ。
亡き父が遺した帽子屋を経営すること以外に、彼女にとって興味のあることなどなかったのだ。
そんなある日。
ソフィーはガラの悪い兵士たちに絡まれているところを、1人の青年に助けられる。
謎の追っ手から逃げようとする青年の力で空を飛び、久しぶりに心を浮き立たせるソフィーだったが、その青年こそ悪名高い魔法使いのハウル(木村拓哉)。
彼は人間が近寄らない荒地を奇怪な動く城に乗って我が物顔で歩きまくり、人の心臓を取って食べると噂されていた。
その夜、ハウルとの間に因縁がある荒地の魔女(美輪明宏)が、ソフィーに魔法をかけて去って行った。
すると、彼女の身体は90歳のおばあちゃんに大変身!
このままの姿で家に居続けることはできないと、ソフィーは荒地に向かうことにする。
道中出会ったカカシのカブ(大泉洋)を道連れに、旅を続けるソフィー。
しかし、辺りはだんだん暗くなり…。
途方にくれそうになっていたところで、ソフィーの前に現れたのは、巨大な動く城。
カブに導かれるように城の中に足を踏み入れたソフィーは、暖炉の中で燃えている火の悪魔・カルシファー(我修院達也)からある取り引きを持ちかけられる。
彼を城に縛り付けているハウルとの契約の謎を解いてくれれば、ソフィーにかけられた魔法を解いてくれるというのだ。
力は強いが人の良いカルシファーを手なずけ、ハウルの弟子の少年・マルクル(神木隆之介)をもまるめこんだソフィーは、住み込みの家政婦として城で働くことになった。
猛然と城中を掃除し、すべてを仕切り始めたソフィーに戸惑いながらも、新しい生活を楽しみ始めるカルシファーとマルクル。
自信家でかっこつけ屋のハウルも、彼女の存在に安らぎを見出し始めていた。
凸凹ながらも、ソフィーを中心とした新たな絆で結ばれつつあるハウルの動く城の住人たち。
しかし彼らの平穏な共同生活の一方で戦争は激しさを増していき、魔法使いや魔女たちも、国王たちから協力を求められるようになっていた。
ハウルのもとにも、魔女のサリマン(加藤治子)をはじめ各国から召集令状が届き…。
戦争を終わらせるために、孤軍奮闘を続けるハウル。
彼の戦いの行方に待っているのは? そして彼への愛に気付いたソフィーは、ハウルを救うことができるのか!?