Edward Bloom (Albert Finney), a charismatic teller of tall-tales, is a source of frustration to his grown son, William (Billy Crudup). At Wills wedding, Edward embarrasses him by telling the guests an impossible-sounding story about the day of Will's birth, involving a giant catfish that ate his wedding ring. Will believes that his father tells lies to get attention and confronts him angrily. They don't speak to each other for three years.
Will receives news that Edward is very ill, and that he might not have long to live. Will and his pregnant wife Josephine (Marion Cotillard) travel to Ashton, Alabama, Wills hometown. Edward is weak and bedridden, but he and Will finally speak again. Will asks to know the truth about his father's life. Edward retells his version of his childhood.
In a flashback, a young Edward and his friends meet a local witch (Helena Bonham Carter), who has a glass eye which reveals the eventual death of anyone who looks into it. Edward sees how he will die (though the audience does not), and decides that he can now take unreasonable risks because he knows they cannot kill him. Soon afterward, Edward begins to grow at an alarming rate and is hooked up to a machine in bed, as his muscles and bones cannot keep up with his "body's ambition." In an encyclopedia, young Edward reads that a goldfish will remain small if kept in a small bowl, but will grow bigger if kept in a larger area. He decides that, because he is growing so fast, he is meant for bigger things.
As a teenager, Edward Bloom (now Ewan McGregor) is a star athlete, entrepreneur, and local hero. When a mysterious "monster" comes to town and eats livestock during the night, he volunteers to talk to it and get it to leave. Edward tracks down the culprit, a gloomy but goodhearted giant named Carl (Matthew McGory), and convinces him to move to a bigger city. Edward explains that Ashton is too small a town for men of Carl's size and of Edward's ambition. The two leave town, and Edward is given the key to Ashton by the mayor.
They approach a forest, which Edward wants to take a shortcut through. He promises to meet Carl on the other side, and ventures through the woods (which are full of thorns, spiders, and bees). He stumbles across the town of Spectre, a seemingly perfect place where no one wears shoes. After spending the day there, he shocks the townspeople by politely excusing himself to get on with his journey. His shoes are flung up onto a high rope along with many other pairs that were taken from each townsperson upon their arrival to Spectre in an effort to keep them there, but Edward continues his trek barefoot. He promises a smitten little girl named Jenny that he will return someday.
Edward and Carl stumble upon a circus, where Carl is immediately hired as an attraction by the owner and ringmaster, Amos Calloway (Danny DeVito) and his clown/attorney Mr. Soggybottom (Deep Roy). Edward glimpses a beautiful girl in the big top audience, but she is whisked out the door with the crowd before he can speak to her. She turns out to be a family friend of Calloway. Certain that she is the woman he will marry, Edward begs Calloway for a job, asking for only one piece of information about the girl for every month of work. Edward toils at the circus, and learns that the girl loves daffodils and music, that she is going to college, and that her name is Sandra Templeton. Edward bids farewell to Mr. Calloway (who also happens to be a werewolf), and sets off to find Sandra.
Meanwhile, the elderly Edward befriends his daughter-in-law, Josephine, but is still at odds with his son, who believes him to be a liar. Will begs his father to be himself, but Edward firmly retorts Ive been nothing but myself since the day I was born, and if you cant see that, its your failing, not mine!
Upon reaching the university where Sandra Templeton (Alison Lohman) is a student, teenaged Edward finally meets her and explains that he loves her. She is kind to him and had heard of his accomplishments in Ashton, but is already engaged (to Edwards hapless rival, Ashton native Don Price). Still determined, Edward finds not-so-subtle ways to woo Sandra. One morning, Sandra awakens to find her lawn covered in daffodils provided by Edward. However, Don Price appears and begins to brutally beat Edward, who had promised Sandra he would not fight back. But as Sandra sees Dons cruelty, she breaks the engagement, and eventually does marry Edward.
While recovering in the hospital from his fight injuries, Edward receives a draft notice, forcing him to enlist for the Korean War. While sad to leave his new wife, Edward knows from the glass eye that nothing in the war will kill him. Thus, he volunteers for the most dangerous missions in hopes of being sent home sooner. While parachuting into a Korean army camp during a performance for the troops, Edward meets struggling Siamese twin singers Ping and Jing. He offers to help them break into American show business if they can help him get home. However, the Army lists him as missing and presumably dead, sending a telegram to a heartbroken Sandra (in the present day, Sandra finds the telegram and shows it to Will, proving that there is some truth to Edwards stories). Edward eventually rejoins his wife, and takes a job as a travelling salesman to buy them a better house.
In line at a bank one day, the younger Edward encounters Norther Winslow (Steve Buscemi), a native of Spectre he had met years before. Norther has since become a criminal, and Edward is roped into assisting him in robbing the bank. However, the bank has literally no cash for them to steal. Norther resolves to go to Wall Street where the money is. He later sends Edward $10,000, which he uses to buy a house for Sandra and a young Will.
Years later, Edward is nearing middle age. He reconciles with Jenny (also played by Bonham Carter), the little girl he met in Spectre, who now lives in a dilapidated old house and gives piano lessons. Seeing the condition of her home, Edward begins to fix it up himself, with the help of Carl the giant. After he restores the house, Jenny reveals that she still has feelings for him after many years. Edward gently tells her that he loves only Sandra, and departs.
Back in Ashton, elderly Edward weakens more and more. However, he repeatedly tells his family that this is not the death he saw in the eye. Will spends some time alone, still believing that he will never have a chance to know his fathers true character. Shortly after, Edward has a stroke and is hospitalized. Will encounters the family doctor, who had delivered him and is now treating Edward. Will asks to know the real story of his birth, having heard only his fathers catfish story in the past. The doctor explains that it was simply a normal birth, and though Edward exaggerated it, hearing his story was entertaining and comforting. Will decides to reconcile with his dying father.
At Edwards bedside, Will steps into his fathers shoes and begins an impromptu story: Edward regains strength, and he and Will escape the hospital. Jumping into Edwards old car, they speed to a nearby river, where all their family and friends are waiting. Instead of a funeral, they are holding a goodbye party, and Edward happily bids them farewell as he transforms into a catfish and swims away.
Will is the only one present for Edwards death, and is deeply happy that they connected at last. At Edwards funeral, Will is astonished to see characters from Edwards stories show up to attend: Mr. Calloway, Carl (not a giant, but still very tall), Ping and Jing (not conjoined twins, but identical), and many others. Edward had combined his love of storytelling with his own reality, which finally makes sense to Will. When his own son is born, Will passes the stories on to him.