At the beginning of the 20th century in Vienna, young Eduard Abramovich, the son of a carpenter, falls in love with aristocratic Sophie and they spend all their free time together, much to her family's disapproval. Eventually separated by Sophie's family, Eduard puts all his energy and passion into magic and travels to the Far East for fifteen years to return again to Vienna as the famous illusionist Eisenheim.
During one of his shows attended by the vicious Crown Prince Leopold (Rufus Sewell) and his aid Inspector Uhl (Paul Giamatti), Sophie (Jessica Biel) and Eduard (Edward Norton) meet again as she volunteers for one of his tricks. And it didn't take them long to fall back in love with each other, but this time they face the obstacle of Sophie's engagement to the Crown Prince, who needs this engagement for a political scheme that he's brewing to overthrow his father and rule in his place.
Sophie and Eisenheim plan to runaway together, but unfortunate events disrupt their plans, and Eisenheim is left once again to concentrate on his magic tricks, and how he well get revenge through it.
I was excited to watch this movie, as I'm a big fan of Edward Norton and I have to admit that I was unpleasantly disappointed to find it mediocre and unimpressive.
The dialogue was weak and unconvincing, you keep expecting something powerful or impacting to happen, but nothing happens other than second-rate conversations far from engaging. Edward Norton was bland and average, unlike his usual intense roles. Jessica Biel is tasteless with nothing more to offer other than good looks. Not to mention that the chemistry between the two of them is practically non-existent.
Paul Giamatti was not bad as the Inspector who's torn between doing the right thing and doing the lucrative thing. Rufus Sewell had no trouble portraying the heartless inhuman Crown Prince, even though his character lacked depth.
All in all, I'd say The Illusionist is not worth the trouble of going to the theatre for, and watching it at home on a boring weekday evening would be enough.