Le jeune écuyer Gareth part à la recherche d'une comète écrasée sur Terre, il pense y trouver de l'or pour payer son titre de chevalier. Au lieu de trouver une comète, Gareth trouve le dragon Drago (voix de Ben Kingsley) qui est tombé sur terre et est traqué par un sorcier maléfique. Après que Drago ait sauvé la vie de Gareth, les deux deviennent intimement liés et doivent travailler ensemble pour vaincre le sorcier et arrêter son règne de terreur. Sur son chemin, Gareth apprend à devenir un vrai chevalier.