Merlin, the sorcerer, dies and gives Balthazar (Nicolas Cage), his apprentice, his ring to find the prime Merlinian which is the only person who can defeat Morgana (Alice Krige), Merlin’s arch rival. Horvath (Alfred Molina), another of Merlin’s apprentices, has joined forces with Morgana who wants to raise all Morganian sorcerer’s from the dead to take over and destroy the world. Veronica (Monica Bellucci), Merlin’s last apprentice, took in Morgana’s soul to trap them in an enchanted nesting doll. Balthazar is protecting the doll as he and Veronica are in love. Horvath eventually also gets trapped in the doll with a few other Morganians.
Dave (Jay Baruchel) finds Balthazar in New York City by coincidence when he is 10 years old. Merlin’s ring indicates that Dave is the prime Merlinian. By accident, Dave releases Horvath from the nesting doll. Balthazar traps himself and Horvath in a magical urn which won’t release them for 10 years. Dave is traumatized by this experience but keeps the ring.
10 years later Horvath and Balthazar are released from the urn. Dave is in college. He meets up with the girl he had a crush on in elementary school, Becky (Teresa Palmer). Horvath finds Dave but Balthazar intervenes. Dave and Balthazar go on their journey to becoming master sorcerer and sorcerer’s apprentice.
The end of the journey is in New York City, Battery Park. Horvath releases Veronica’s body which has Morgana’s soul in it. Morgana conjures up the dead Morganian sorcerer’s spirits, Becky moves a satellite dish which breaks Morgana’s spell and stops the spirits. Horvath is taken away by the metal eagle but his hat is left behind. Balthazar takes in Morgana’s soul to save Veronica. Morgana’s spirit gets free and is shooting plasma bolts at Veronica and Balthazar. Balthazar goes down. Dave, without his ring, conjures plasma bolts with science and garden equipment to help him breakdown Morgana’s power which disperses her into the wind.
Veronica tells Dave that Balthazar’s heart stopped. Dave thinks that if Morgana can stop his heart then he can start it. His hands with plasma bolts becomes a defibrillator and Balthazar eventually wakes up. Becky comes back and all is good. Dave and Becky ride off in the night on the metal eagle. The words ‘The End’ show on the screen in dust but get blown away possibly signifying a sequel.
After the credits you see the bowler hat that Horvath wears being taken from the darkness by a hand. Signifying he’s not dead possibly for the sequel.