In un passato in cui le forze del male lottano per avere il sopravvento sulla Terra, al mago Gregory (Jeff Bridges), un cavaliere incappucciato e severo, e' riuscita l'impresa di catturare Mamma Malkin (Julianne Moore), la strega piu' temibile di tutta la contea, costringendola a secoli di prigionia. Quando per un errore involontario Mamma Malkin ritorna in liberta' e minaccia di far scendere una terribile maledizione sugli uomini, Gregory ha tempo fino alla prossima luna piena per trovare l'unica persona in grado di fermarla: il settimo figlio di un settimo figlio. Lo individua nel giovane Tom Ward (Ben Barnes) ma deve lottare contro il tempo per insegnargli cio' che di solito richiede anni e anni di preparazione.