Berlin, Germany. 1928
Stanley Crawford (Colin Firth) is a British illusionist/magical debunker performing a show under the guise of Wei Ling Soo, a Chinese magician. He does such tricks as making an elephant disappear, sawing a woman in half, and entering a sarcophagus and re-emerging in a chair, to the delight of audiences. Backstage, Stanley is rude and snobbish towards his assistants and a fan seeking an autograph. He is approached by his old friend and fellow illusionist Howard Burkan (Simon McBurney). Over a drink, Howard asks Stanley to travel with him to the French Riviera to see a wealthy family that have been enchanted by a young woman claiming to be a medium. Stanley's task is to reveal her as a fraud. He informs his fiance Olivia (Catherine McCormack) of his trip, as she is also a skeptic.
The two friends drive to Côte d'Azur to meet the Catledge family. Stanley first meets Caroline Catledge (Erica Leershen) and her husband George (Jeremy Shamos), who both show concern over Caroline's brother Brice (Hamish Linklater), who is smitten with this so-called medium. He is heard practicing serenading her. Stanley and Howard meet Brice, who expresses his awe of this woman, as she has apparently seen things about himself that she couldn't have known, giving him a more introspective look on himself. This woman, Sophie Baker (Emma Stone), arrives with her mother (Marcia Gay Harden). Upon meeting Stanley, she gets a "mental vibration" of him being from the Orient, specifically China, and also deduces that he's done business in Germany. Not quite impressed, Stanley admits that he was recently in Berlin on business. Throughout the rest of the afternoon, Stanley displays his sarcasm and skepticism to Sophie and her mother. Mrs. Baker thinks he's obnoxious, and while Sophie agrees, she adds that he's not entirely unappealing.
Brice strums his ukulele and sings to Sophie. He tells her he is very much in love with her and wants to marry her. She neither expresses interest nor disdain for him.
That night, the Catledges gather for a seance in which Sophie attempts to communicate with the deceased husband of Brice and Caroline's mother, Grace (Jacki Weaver). Grace is eager to see if she can really speak to her husband. The family connects hands with each other and Sophie as she attempts to make contact. She beckons the spirit to knock once for "yes" and twice for "no". A knock is heard, and Stanley keeps his eyes peeled for anything. Suddenly, a candle begins floating in the air. Everyone, even Stanley, is baffled. Howard reaches to grab it, but sees no evidence of a wire or anything.
Stanley still doesn't believe Sophie has any gift, but she is able to shake him a bit when he mentions his uncle and she gets another mental vibration of a "death by water". Stanley admits to Howard that his uncle drowned a few years back. Later, Sophie mentions seeing Wei Ling Soo as a child and enjoying the performance. She knows Stanley is the magician and tells him not to doubt what she can do. It's obvious Sophie has a hold on him as Stanley can barely sleep at night.
The family holds another seance where Grace asks her deceased husband if she was always his only woman. One knock for yes. She then hesitantly asks if he ever had an affair with a specific woman she names. Two knocks for no. Grace is overjoyed.
Sophie goes for a swim in the Catledges' pool. Brice continues to serenade her and then has the butler bring in a bunch of dresses that Sophie had been checking out in town.
Stanley invites Sophie with him to go out on the town. She enjoys eating a lot, to Stanley's surprise. She even mentions information about Olivia and an older flame of Stanley's, Jenny.
Stanley takes Sophie to the home of his Aunt Vanessa (Eileen Atkins), something of a mother to Stanley. Sophie asks Vanessa to hand her some type of jewelry, and she gives Sophie her pearl necklace. From holding it, Sophie determines a love affair of Vanessa's, as the necklace was given to her by a man that could not be with her because he was still married. This cracks Stanley, causing him to believe in Sophie's gifts and acknowledge her as the real deal.
On their trip home, his car breaks down. He spends hours taking the engine apart and putting it back, but to no avail. A thunderstorm starts happening, scaring Sophie and making her think they'll die. She and Stanley run for shelter and find a nearby observatory. Stanley recognizes it from his youth. They go inside where he keeps Sophie close so she stays warm. He then takes her near the telescope and opens the roof, where they see the moon and stars up above.
Everyone attends a fancy and lavish party. Stanley is dancing with Vanessa while Sophie cuts a rug with Brice. They switch partners, giving Stanley and Sophie a chance to walk together. She asks him if he has thought anything of her lately as a woman. He awkwardly responds that he hasn't seen her in that way, specifically as a woman, but he has become pleasantly surprised by what he's seen from her, regarding her gifts. Sophie leaves disappointed.
Stanley, Sophie, and her mother gather with reporters for a press conference. Everyone asks Stanley about his new feelings regarding this type of magic or how he feels now as a skeptic. Moments later, George comes in to tell Stanley that his aunt has been in a car accident. He immediately steps out.
At the hospital, Stanley is told that Vanessa is being treated by doctors. He sits down and starts to pray. For a moment, it appears that he really believes what he's saying, until he comes to a realization. He quickly dismisses all his beliefs and goes back to thinking Sophie is a fraud.
Stanley returns to the Catledge home to confront Sophie. He asks her how she did not predict the car accident and warn him about it. He leaves the room with Sophie and Howard alone. It is then that we learn that the two of them conspired to trick Stanley. Howard knew Sophie was a fraud, but he wanted to really get Stanley after years of being second best to his more successful friend. Stanley then turns around in his chair to show that he has been listening the whole time. Sophie is ashamed and wants Stanley to forgive her, especially since she knows that his time spent with her has let him believe in new possibilities and have a new lease on life. Despite this, Stanley refuses to forgive her.
Vanessa makes a full recovery, and Stanley picks her up and takes her home. When they get back, Stanley slowly begins to express his true feelings toward Sophie. He realizes he doesn't love Olivia as much as he thought, and he has fallen in love with Sophie.
Stanley finds Sophie sitting on a swing. By now, she has already accepted Brice's marriage proposal. Stanley makes an uneasy proposal, saying she should marry him instead. Sophie says he already had his chance, and it's gone. She walks away while he tries to take the offer off the table.
Stanley forgives Howard for trying to trick him. He also mentions that he broke it off with Olivia, who happened to be calm about it, as they both realized they weren't right for each other.
Stanley returns to Vanessa's home one more time after being rejected. He sits in the living room talking aloud and expressing his regret over not expressing his love for Sophie earlier. He then hears a knock. He knows Sophie is near. He then asks if she'll marry him. Another knock for yes. Stanley turns around to see Sophie standing in the doorway. He goes up to her and they kiss.