John Gregory (Jeff Bridges) is een Spook, een persoon die vecht tegen het kwaad, en heeft eeuwen geleden de slechte en krachtige heks, Moeder Malkin (Julianne Moore), gevangen gezet. Maar nu is ze ontsnapt en ze is uit op wraak. Terwijl ze haar volgers bijeen roept, bereidt Moeder Malkin zich voor om haar woede te botvieren op de nietsvermoedende mensen. Slechts één ding staat in haar weg: John Gregory. John zelf is niet meer de jongste en probeert iemand te vinden die hem kan opvolgen. Hij heeft zijn hoop gevestigd op de jonge boerenzoon Thomas ward.