In 1963, teen-aged Frank Abagnale (Leonardo DiCaprio) lives New Rochelle, New York with his father Frank Abagnale, Sr. (Christopher Walken), and French mother Paula (Nathalie Baye). When Frank Sr. is denied a business loan at Chase Manhattan Bank due to unspecified difficulties with the IRS, the family is forced to move from their large home to a small apartment. Paula carries on an affair with Jack (James Brolin), a friend of her husband. Meanwhile, Frank poses as a substitute teacher in his French class. Frank's parents file for divorce, and Frank runs away. When he runs out of money, he begins to rely on confidence scams to get by. Soon, Frank's cons grow bolder and he even impersonates an airline pilot. He forges Pan Am payroll checks and succeeds in stealing over $2.8 million.
Meanwhile, Carl Hanratty (Tom Hanks), an FBI bank fraud agent, begins to track down Frank. Carl and Frank meet in a hotel, where Frank convinces Carl his name is Barry Allen of the Secret Service. Frank leaves, Carl angrily realizing his mistake just as it is too late. Later, at Christmas, Carl is still working when Frank calls him, attempting to apologize for duping Carl. Carl rejects his apology and tells him he will soon be caught, but laughs when he realizes Frank actually called him because he has no one else to talk to. Frank hangs up, and Carl continues to investigate, suddenly realizing (thanks to a waiter) that the name "Barry Allen" is from the Flash comic books and that Frank is just a teenager.
Frank, meanwhile, has not only changed to becoming a doctor and a lawyer, but has fallen in love with Brenda (Amy Adams), to whom he eventually admits the truth about himself and asks her to run away with him. Carl tracks him to his engagement party where Frank has left Brenda, asking her to meet him two days later so they can elope. Frank sees her waiting for him two days later, but also sees agents in disguise. He realizes he has been set up and