Parents Mortimer "Mo" Folchart (Brendan Fraser) and his wife Teresa "Resa" Folchart (Sienna Guillory) read the fairy tale "Little Red Riding Hood" to their baby daughter Meggie, as a red velvet hood appears out of nowhere. Twelve years later, Meggie (Eliza Bennett) visits an old book shop in Europe with her father, unaware that he is secretly looking for a copy of the book Inkheart. Shortly after Mo finds the book, Meggie encounters a horned marten outside the shop; it tries to bite her fingers. A man (Paul Bettany) suddenly appears from the shadows, claiming to be an old friend. Mo comes out of the shop, recognizing the man as Dustfinger, who quickly asks him to "read him back into the book". Mo flees with Meggie.
Mo takes Meggie to visit her great-aunt Elinor (Helen Mirren) in Italy. There he tells Meggie that nine years ago, reading to her from Inkheart, he inadvertently freed Dustfinger, a fire dancer, due to a gift he possessed from birth. Unfortunately, the book's villain, Capricorn (Andy Serkis), and one of his henchmen, Basta (Jamie Foreman), were also freed. Fleeing with his infant daughter, Mo realizes Resa has been taken into the book. Dustfinger arrives with Basta, who captures the group, destroys Elinor's library and takes Inkheart. They are taken to Capricorn's new castle in the real world.
During their imprisonment, Mo explains his gift to Meggie and Elinor, stating that when he reads a person or an object out of a book, someone from the real world is sent into it, hence his wife's disappearance. Capricorn forces Mo to use his gift, acquiring treasure from one of the stories in The Arabian Nights, and imprisoning Farid (Rafi Gavron), one of the 40 Thieves. Dustfinger, who was promised a return into the book, is betrayed by Capricorn. Nevertheless, the group escapes using the tornado from The Wonderful Wizard of Oz.
Elinor leaves to recover what is left of her library as the other head for Alassio, the town of Inkheart's author, Fenoglio (named in honor of Italian writer Beppe Fenoglio), who may have another copy, following Meggie's proposal. Dustfinger is initially afraid of learning his fate in the book, but later joins them. When they meet Fenoglio (Jim Broadbent), the author's ecstatic reaction to seeing his creation alive leads Dustfinger to learn he dies at the end, trying to save his marten, Gwin. Angry, he berates Fenoglio before eventually telling Mo that Resa is trapped in the castle and has lost her voice.
Mo and Dustfinger take Fenoglio's car; Farid stows away in the trunk. At Fenoglio's house, Meggie begins reading out loud, bringing Toto from The Wizard of Oz. Basta bursts in with his men and takes the group to Capricorn. Elinor, having decided to stay, realizes something is amiss and pursues them. At the castle, Capricorn orders Meggie to bring the Inkheart's monster, Shadow, threatening to harm her mother if she does not comply. Mo sneaks into the castle. Dustfinger is captured, but escapes after Meggie informs him of Capricorn's intentions.
Mo attempts to free Meggie and others, as Capricorn forces her to bring the Shadow. Dustfinger returns to the castle with Farid, setting it alight. The distraction allows Fenoglio to give Toto a rewrite he made to help Meggie stop Capricorn's plan. As Elinor arrives with the creatures Capricorn imprisoned, Meggie writes out the story on her arm. As she reads out her creation, Capricorn turns into ashes as the Shadow devours him, his henchmen vanish, the Shadow explodes, and all the read-out creatures back are returned where they belong, including Toto. In addition, she grants Fenoglio's wish to live in the world he created, while reuniting her and Mo with her mother and restoring her voice. Dustfinger is also safely read back into Inkheart, where he is reunited with his wife Roxanne. In the real world, Farid reveals he kept Gwin with him, thus allowing Dustfinger to avoid his fate and have control over his destiny. As Mo and his family leave with Farid, Meggie agrees to teach him how to read while Farid agrees to teach her how to use the dragon breath, the fire breathing ability of Dustfinger's which Farid learned.
Brendan Fraser as Mo 'Silvertongue' Folchart/Mortimer 'Mo' Folchart
Eliza Bennett as Meggie Folchart
Paul Bettany as Dustfinger
Helen Mirren as Elinor Loredan
Andy Serkis as Capricorn
Jim Broadbent as Fenoglio
Rafi Gavron as Farid
Sienna Guillory as Teresa "Resa" Folchart
Lesley Sharp as Mortola
Jamie Foreman as Basta
Matt King as Cockerell
John Thomson as Darius
Jennifer Connelly as Roxane
Marnix Van Den Broeke as The Shadow
Steve Speirs as Flatnose
Jessie Cave as Nymph
Adam Bond as Prince Charming
Tereza Srbova as Rapunzel
Emily Eby as Guinevere
Roger Allam as Narrator
Paul Kasey as Minotaur
Stephen Graham as Fulvio