אולם בטרם מספיקה המכשפה השחורה להגיע על מנת לתבוע את הילדה, אימה של אלורה דנן משכנעת מיילדת להבריח את התינוקת. בבמורדה שולחת את בתה סורשה (ג'ואן והאלי) ואת ראש הצבא שלה הגנרל קייל (פט רואץ') אחר המיילדת, לתפוס אותה ולהחזיר את אלורה. לאחר מרדף ארוך, כלבי נוקמאר מוצאים את המיילדת. בידיעה כי לא תוכל לברוח, המיילדת מניחה את התינוקת על רפסודה מאולתרת ושולחת אותה לגורלה - במורד זרם נהר. בעודה מאמינה כי מיצתה את התפקיד המיועד לה - הכלבים מדביקים אותה וקורעים אותה לגזרים. בינתיים, התינוקת נשטפת בזרם אל חוף הסמוך לכפר המיושב על ידי גזע של ננסים המכונים נלוינים. וילו אופגוד (וורוויק דייוויס), חקלאי וקוסם חובב, מוצא את התינוקת ומחליט לטפל בה.
יום למחרת, וילו וילדיו משתתפים בפסטיבל המתקיים בכפר שלהם. וילו לוקח חלק במבחן, על מנת להתקבל ולהיות שוליה לקוסם של הכפר, אך נכשל. במהלך החגיגה, כלב מנוקמאר, אשר מנסה להתחקות אחר עקבותיה של התינוקת, תוקף את הכפר. לאחר שסיבת התקיפה מתגלה, וילו נבחר על ידי מועצת העיר כדי להחזיר את הילדה לעולם של בני האדם (המכונים דאיקיני). בן האדם הראשון שווילו פוגש בדרכו הוא מדמרטיגן (ואל קילמר), לוחם שחצן המוחזק בשבי ב"כלוב של עורב" בצד הכביש על פשע כלשהו. בלא יכולת לברוח מהכלוב שלו, מדמרטיגן מציע לווילו כי יטפל בתינוקת, אם ישחרר אותה. במהלך שיחתם, הם פוגשים בצבא הנסוג של ממלכת גאלאדורן, שהובס לאחרונה על ידי צבאה של בבמורדה. בראש הצבא המובס נמצא חבר ותיק של מדמרטיגן - אירק ת'אוגבר (גייבן או'הרליהי). וילו מפקיד את התינוקת בידי מדמרטיגן ויוצא במסע בחזרה אל ביתו, אולם בדרכו חזרה הוא מותקף על ידי שבט של פיות (גזע המכונה בראוני), אשר חטף את התינוקת ממדמרטיגן. וילו נפגש עם מלכת הפיות של היער צ'רלינדרה אשר מספרת לו כי התינוקת אלורה דנן בחרה בו להיות האפוטרופוס שלה. היא נותנת לווילו את שרביט הקסם שלה, מצוותת אליו כמדריכי דרך שני בראונים - רול (קווין פולאק) ופרנז'אן (ריק אוברטון) - ומורה לו לחפש אחר המכשפה פין רזיאל. בדרכם, הם נתקלים במדמרטיגן, אשר עוזר להם לברוח מסורשה.
וילו וחבורתו מתארים את פין רזיאל (פטרישיה הייז), אך מתאכזבים לגלות כי היא מכשפה אשר בבמורדה שינתה את צורתה לאופוסום. זמן קצר לאחר מכן, סורשה לוכדת את וילו והאחרים, והם מתחילים את המסע הארוך אל טירת נוקמאר. בעודם שוהים במחנה הסמוך להר שעליו נמצאת הטירה, וילו מנסה להשתמש בקסם ולהפוך את פין רזיאל בחזרה אל צורתה האנושית, אך הופך אותה לעורב במקום. רול ופרנז'אן גורמים למהומה, כאשר הם חושפים בטעות את מדמרטיגן לאבק פיות, ובכך גורמים לו להתאהב בסורשה.
בסופו של דבר, הקבוצה מגיעה אל טיר אסלין. מדמרטיגן מתכונן להתקפתה של סורשה, בעוד וילו נכשל שוב בניסיונו להפוך את פין רזיאל לצורה אנושית, והופך אותה לעז. סורשה וקייל, ביחד עם הצבא שלהם, מגיעים למקום ותוקפים. למרבה המזל, שרידי צבא גאלאדורן המובס מגיעים בזמן, על מנת לסייע להם. בעוד הקרב מתפתח, סורשה מגלה את אהבתה למדמרטיגן ועורקת מהצבא של אימה. קייל, לעומת זאת, לוכד את אלורה דנן ולוקח אותה לנוקמאר.
וילו, מדמרטיגן, סורשה, רול, פרנז'אן, פין רזיאל, אירק ושארית צבא גאלאדורן מתכננים להסתער על הטירה, בניסיון אחרון להציל את אלורה דנן מפני בבמורדה. בבמורדה הופכת את כולם לחזירים, אולם פין רזיאל מספיקה ללמד את וילו כיצד להגן על עצמו מפני הכישוף. וילו מצליח סוף סוף להחזיר את פין רזיאל לצורתה האנושית, והמכשפה משנה את צורתם של יתר החיילים בחזרה, מחזירים לבני אדם.
מאחר שהחומות של נוקמאר נראות בלתי חדירות, וילו מציע להשתמש בתכסיס, אשר יביא אותם אל תוך החומות: בעוד המחנה הצבאי שלהם נראה שומם, וילו ופין רזיאל מתגרים בחיילי צבא נוקמאר, אשר נוטשים את עמדות האבטחה שלהם בטירה ויוצאים לתקוף. ברגע האחרון, מדמרטיגן, סורשה ויתר הלוחמים יוצאים ממחבואם ומפתיעים את האויב. בעוד אירק, מדמרטיגן וחייליהם לוחמים בקייל ובצבאו בחצרות נוקמאר, וילו, פין רזיאל וסורשה עושים את דרכם אל עבר המגדל הראשי של הטירה, בניסיון למצוא את אלורה. כאשר הם מגיעים למקום, הם מוצאים את בבמורדה, באמצע קיומו של טקס פגאני מרושע, אשר יגרש את גופה ואת נשמתה של אלורה מהעולם שלנו, אל הממלכה התחתית. בינתיים, קייל הורג אירק, ולאחר מכן נלחם במדמרטיגן, אשר הורג את קייל. וילו משתמש באחד מתכסיסיו כקוסם חובבן, על מנת להבריח את אלורה מידיה של בבמורדה, אשר נלכדת בתוך הטקס שלה בעצמה, וגורמת לסילוק גופה ונשמתה לנצח.
מדמרטיגן וסורשה הופכים למלך ולמלכה של הממלכה, במקומה של בבורדה, ומאמצים לעצמם כבת-נסיכה את אלורה. פין רזיאל מעניקה לווילו כמתנה ספר כשפים, והוא חוזר לכפרו, מתאחד עם אשתו וילדיו וממשיך לפתח את יכולות הקסם שלו.
הפקה.
פיתוח.
ג'ורג' לוקאס הגה את הרעיון לסרט זה ("מאנצ'קינים" היה שמו המקורי) בשנת 1972. לוקאס רצה כי סרט זה יהיה דומה ל-"מלחמת הכוכבים", בכך שיצר "מספר סיטואציות מיתולוגיות הידועות לקהל הצעיר". במהלך הפקת הסרט "שובו של הג'דיי" בשנת 1982, פנה לוקאס לוורוויק דייוויס, אשר גילם אחת מהאִיווֹקים בסרט, בנוגע לליהוקו לדמות של וילו אופגוד, אותה גילם בסופו של דבר חמש שנים לאחר מכן. לוקאס חשב ש"זה יהיה נהדר ללהק אדם קטן לתפקיד הראשי. הרבה סרטים שלי הם על הבחור הקטן מול המערכת, וזה הפירוש המילולי יותר של הרעיון הזה".
לוקאס הסביר כי הוא היה צריך לחכות עד אמצע שנות ה-80' להפקת הסרט, כי רק אז הטכנולוגיה הייתה מתקדמת מספיק, על מנת שיוכל יהיה לבצע את חזונו הוויזואלי. בינתיים, השחקן-שהפך-במאי רון הווארד חיפש לעשות סרט פנטזיה. הווארד היה ב-Industrial Light &amp; Magic במהלך שלב הפוסט-פרודקשן של סרטו "קוקון", כאשר פנה אליו לוקאס לראשונה בהצעה כי יביים את "וילו". הווארד כיכב בעבר בסרטו של לוקאס "אמריקן גרפיטי", ולוקאס חש כי לו ולהווארד מערכת יחסים הדומה לזו שיש לו עם סטיבן ספילברג. הווארד בחר בבוב דולמן לכתוב את התסריט, על פי סיפור מאת לוקאס. הווארד עבד בעבר עם דולמן על פיילוט לתוכנית טלוויזיה שלא יצאה אל הפועל, ולוקאס העריץ את עבודתו של דולמן על עבודתו בתוכנית "WKRP in Cincinnati" (סיטקום משנות ה-70' המאוחרות).
דולמן חבר אל הווארד ואל לוקאס ב"חוות סקייווקר", שם קיימו השלושה סדרת ישיבות ארוכה. דולמן כתב שבע טיוטות שונות לתסריט, בין האביב לבין הסתיו של 1986. שלב הפרה-פרודקשן החל בסוף שנת 1986. אולפני הסרטים הגדולים דחו את ההזדמנות לממן ולהפיץ את הסרט בשותפות עם Lucasfilm, משום שהאמינו כי ז'אנר הפנטזיה איננו מצליח במיוחד. זה היה בעיקר בגלל סרטים כמו "מצור על יבשת קרול", "אגדה", "קוטל הדרקונים" ו-"המבוך". לוקאס לקח את "וילו" לאולפני MGM, אז בראשותו של אלן לאד ג'וניור. ללוקאס ולאד מערכת יחסי עבודה, כבר מאז אמצע שנות ה-70', כאשר לאד, בעת היותו ראש פוקס המאה ה-20, אישר ללוקאס לצאת לדרך עם הרעיון שלו ל"מלחמת הכוכבים". אולם בשנת 1986, לחברת MGM היו בעיות כלכליות והשקעה משמעותית בסרט פנטזיה נתפסה כסיכון גדול. לאד הזרים כמקדמה מחצית מתקציב הסרט - כ-$36,000,000 - בתמורה לזכויות הקרנה ושידור באולמות קולנוע ובערוצי הטלוויזיה הביתית, והותיר ל-Lucasfilm את הזכויות להשכרת ומכירת קלטות וידאו ביתיות ולשירותי "שלם וצפה" בתמורה לחצי השני.
את דמותו של הגנרל קייל (פאט רואץ') ביסס לוקאס על מבקרת הקולנוע המפורסמת פאולין קייל, עובדה שלא נעלמה מעיניה בראיון מודפס שהעניקה עם צאתו של הסרט. היא התייחסה אל הגנרל קייל כאל "הומאז' לעצמי". באופן דומה, הדרקון בעל שני הראשים נקרא "איבורסיסק", על שם שני מבקרי הקולנוע רוג'ר איברט וג'ין סיסקל.
צילום.
צילומי הסרט החלו ב-2 באפריל 1987, והסתיימו באוקטובר באותה השנה. צילומי הפנים התקיימו באולפני Elstree אשר בהרטפורדשייר, אנגליה, ואילו צילומי החוץ התקיימו בוויילס ובניו זילנד. בתחילה, לוקאס דמיין כי לסרט יהיה מראה הדומה מאוד לזה של הסרט "שובו של הג'דיי", עם כוונה לצלם באולפני Elstree ובצפון קליפורניה, אולם רעיון זה דעך בסופו של דבר. עם זאת, חלק מצילומי החוץ של הסרט התקיימו בסופו של דבר באזור "חוות סקייווקר" ומפלי ברני, בסמוך להר שסטה. הממשלה הסינית סירבה לאפשר ללוקאס לצלם בתחומיה, אפילו לפרק זמן קצר. לפיכך, לוקאס שלח קבוצה של צלמים לדרום סין, לצלם נוף מסוים, אשר שימש בסופו של דבר כרקע עבור צילומי על רקע מסך כחול. הפארק הלאומי טונגרירו נבחר לשמש מקום מושבה של המלכה בבמורדה.
אפקטים ויזואליים.
חברת Industrial Light &amp; Magic של לוקאס (ILM) יצרה את האפקטים החזותיים עבור הסרט. על פי התסריט, וילו משנה את צורתה של פין רזיאל (פטרישיה הייס) מעז אל צורתה האנושית המקורית. וילו מדקלם את מה שהוא חושב שהם מילות הקסם המתאים, אבל הופך את העז ליען, ולאחר מכן לצב ולנמר, לפני שרזיאל חוזרת לגוף האנושי שלה. דניס מורן, מנהל ב-ILM, שקל להשתמש בסטופ מושן לצורך יצירת האנימציה עבור סצנה זו. כמו כן, הוא הסביר כי הדרך הנוספת לבצע סיקוונס זה - המסורתית והמעשית של סוף שנות ה-80' - היא באמצעות שימוש באפקטים אופטיים של עריכה (Dissolve) תוך שימוש בשוטי הסחה בנקודות מסוימות.