Balthazar Blake (Nicolas Cage), seorang penyihir hebat yang hidup di dunia modern saat ini. Ia berusaha melindungi kota Manhattan dari musuh bebuyutannya, Maxim Horvath (Alfred Molina).
Namun, Balthazar tidak dapat melindungi kota tersebut sendirian. Oleh karena itu, ia merekrut Dave Stutler (Jay Baruchel), seorang pemuda biasa yang sepertinya memiliki potensi tersembunyi, sebagai muridnya. Meski Dave terlihat enggan, Balthazar tetap mengajarinya tentang pengetahuan dan seni dalam sihir.
Mereka berdua kemudian bahu-membahu bekerja melawan kekuatan hitam. Hal ini menyebabkan Dave harus mengerahkan semua kemampuannya agar dapat melakukan pelatihan dengan baik, menjalankan misi penyelamatan kota dan mendapatkan wanita pujaannya (Teresa Palmer).