Jack Burton (Kurt Russell) es un camionero que, en el barrio chino de San Francisco, le gana una gran cantidad de dinero a Wang Chi (Dennis Dun). Éste lo convence para que, antes de cobrar el dinero, lo lleve al aeropuerto a recoger a su prometida Miao Yin. Cuando la chica es secuestrada por unos gángsteres chinos, Jack, que se propone rescatarla, entrará en el tenebroso mundo de Lo Pan, un mago que tiene 2.000 años y que gobierna sin piedad el mundo de los espíritus. Esquivando demonios y haciendo frente a temores incomprensibles, Jack lucha a su manera en los oscuros dominios de Lo Pan en una loca carrera para salvar a la chica.
Es el siglo XV, un tiempo dominado por la magia, el miedo y la superstición. Un hechicero, el doctor Erasmus Craven (Vincent Price), permanece inactivo desde la muerte de su esposa Leonore (Hazel Court), a la que todavía llora. Una noche se presenta ante él un cuervo que tiene la facultad de hablar y que asegura que es un mago, el doctor Bedlo (Peter Lorre), que ha sido transformado por un sortilegio del gran maestro Scarabus (Boris Karloff). Cuando Bedlo recobra la forma humana, le cuenta a Craven que en el castillo de Scarabus ha visto una mujer idéntica a Leonore.
El terrible y traicionero Pendragon (Torin Thatcher) planea hacerse con el trono de Cornwall intentando que el rey Mark (Dayton Lummis) abdique y luego casarse con su bella hija Elaine (Judi Meredith). Para conseguirlo cuenta con la ayuda de terribles brujas que habitan en su castillo y su imparable magia. Un gigante bajo su control secuestra a la princesa, pero de camino a casa, el gigante se encuentra con Jack (Kerwin Mathews), un humilde granjero, que lo mata. Ese es sólo el comienzo, ya que Jack debe mantener la magia de Pendragon bien lejos...
Después de buscar fortuna durante cinco años, Westley (Cary Elwes) retorna a su tierra para casarse con su amada, la bella Buttercup (Robin Wright Penn), a la que había jurado amor eterno. Sin embargo, para recuperarla habrá de enfrentarse a Vizzini (Wallace Shawn) y sus esbirros. Una vez derrotados éstos, tendrá que superar el peor de los obstáculos: el príncipe Humperdinck (Chris Sarandon) pretende desposar a la desdichada Buttercup, pese a que ella no lo ama, ya que sigue enamorada de Westley.