No conto infantil, João e Maria são irmãos perdidos numa floresta. Eles encontram uma casa cheia de doces e são acolhidos pela sua dona, que se revela uma bruxa. A dupla consegue enganar a feiticeira, fazendo com que ela caia na própria armadilha. A lenda, que se passa na Idade Média, agora traz os irmãos adultos: João (Jeremy Renner) e Maria (Gemma Arterton) como caçadores profissionais de bruxas.
Por uma razão que ainda desconhecem, Muriel, uma bruxa poderosa (Famke Janssen), está perseguindo a dupla e também anda caçando crianças de sua aldeia. Enquanto tentam detê-la, acabam fazendo descobertas de seu passado.
Esta aventura poderia dar certo pelo seu lado lúdico e se apresentar como uma boa sessão da tarde. Mas o problema é que o filme segue uma tendência de misturar golpes e acrobacias marciais com seres que, a princípio, se combateriam no nível espiritual.
As bruxas ganharam maquiagem excessiva, parecendo punks ou possessas. O armamento não condiz com o período retratado e, mesmo que estejamos no mundo da fantasia, faltou coerência. Renner, que aumentou seu cacife desde que foi indicado ao Oscar em 2008, devia escolher melhor seus papéis para não "queimar o filme".