Nel 740 d.c. Maxim Orvath (Alfred Molina) uno degli apprendisti di Merlino cospira contro il suo maestro insieme alla maga Morgana (Alice Krige) uccidendo Merlino prima che i suoi apprendisti Balthazar Blake (Nicolas Cage) e Veronica (Monica Bellucci) possano intervenire. Baltazhar e Orvath stanno per scontrarsi, ma la loro battaglia sarà impedita dal sacrificio di Veronica che imprigionerà Morgana.
Merlino prima di morire chiede a Balthazar di trovare il suo successore e lunga sarà la strada per il mago che attraverserà secoli cercando un degno successore e combattendo schiere di stregoni tra cui lo stesso Horvath intenzionati a liberare Morgana dalla sua prigione magica.
Giunti ai giorni nostri finalmente Balthazar troverà il suo successore nel giovane Dave Stutler (Jake Cherry), ma le cose non andranno come previsto e la ricerca dovrà attendere ulteriori dieci anni a causa dell’ennesimo scontro con Horvath che finirà per imprigionare entrambi in un’urna magica.