Troy Gable (Colin Hanks) defies his father (Tom Hanks) and leaves law school to pursue his dream of becoming a writer in Los Angeles. To support himself, he takes a job as a road manager for "The Great" Buck Howard (John Malkovich), a fading mentalist. Troy comes to enjoy traveling with Buck to performances in smaller venues such as Bakersfield and Akron. In particular, Troy sincerely admires Buck's signature trick: having someone in the audience hide his fee for that night's performance, which he then unfailingly discovers. (Kreskin is said to have actually performed this feat 6,000 times, only failing to find the money nine times.)
A reluctant publicist, Valerie Brennan (Emily Blunt), is sent to join them in Cincinnati as a replacement for a more senior colleague to promote Buck's still secret attempt to resurrect his career. Valerie is disgusted by Buck's verbal abuse towards her and Troy, with whom she becomes romantically involved. Buck reveals that his comeback will involve putting "hundreds" of people (actually only a few dozen) to sleep and then awakening them as if from the dead. The trick works, but despite a large press turnout, no one is there to record the act, since the news media is called away at the last second to cover a car accident involving Jerry Springer. Furious, Buck unfairly blames the mishap on Troy and Valerie, and then faints from exhaustion. In the hospital, Buck and Troy discover that the media absence actually worked in Buck's favor, as rumors reported by the news media exaggerate the scope of Buck's act; as a result, Buck returns to the limelight as a retro-"hip" phenomenon. He appears on television shows such as those of Jon Stewart, Regis Philbin, Conan O'Brien, and more. Buck is reunited with his estranged friend, George Takei, who sings "What the World Needs Now".
Buck finally gets the call he has been waiting for: To perform once again on The Tonight Show. He previously had performed with Johnny Carson 61 times during the height of his career, but never since the show has been hosted by Jay Leno. Buck is bumped by Tom Arnold, who has too much material and uses up Buck's time. Buck refuses an immediate offer to come back and appear on The Tonight Show the following week, but agrees to receive an offer to headline a date in Las Vegas. When the limelight on Buck dims once more after he fails to find his money for the first time ever during his Las Vegas premiere, Troy leaves him and through Valerie's connections, lands a job with a celebrated TV writer (Griffin Dunne). After some time, Troy sees from an ad in the paper that Buck is doing his show again in Bakersfield. Buck is clearly back where he feels most comfortable, and once again successfully performs his signature trick, leaving Troy to wonder whether Buck doesn't have some mysterious talent after all.