로버트 앤지어(휴 잭맨)는 상류층 집안에서 자란 쇼맨십이 강한 마술사. 반면 고아로 사람들과 잘 어울리지 못하는 알프레드 보든(크리스찬 베일)은 아이디어를 남들에게 보여 줄 배짱은 없지만 누구보다도 뛰어난 재능을 가진 천재이다. 두 사람은 서로를 아끼는 친구이자 선의의 경쟁자. 그러나 그들이 최고라 자부했던 수중 마술이 실패로 돌아가면서 두 사람은 철천지 원수로 돌변한다. 상대방 마술의 비밀을 캐내려 경쟁을 벌이는 가운데, 로버트는 알프레드의 비밀을 알아내기 위해 자신의 조수이자 사랑하는 여인 올리비아(스칼렛 요한슨)를 알프레드에게 접근하게 만든다.