An bitter old miser who makes excuses for his uncaring nature learns real compassion when three ghosts visit him on Christmas Eve.
In 1840s London on Christmas Eve, moneylender Ebenezer Scrooge is visited by the ghost of his deceased business partner Jacob Marley. In his lifetime, Marley was as mean and miserly as Scrooge is now and he warns him to change his ways or face the outcome in the afterlife. Scrooge dismisses the apparition but the first of the three ghosts, the Ghost of Christmas Past visits him as promised. Scrooge sees those events in his past life, both happy and miserable, that forged his character. The second spirit, the Ghost of Christmas Present shows him how many currently celebrate Christmas. The third spirit, the Ghost of Christmas Yet to Come shows him how he will be known once he is gone. To his delight, the spirits complete their visits in one night giving him the chance to mend his greedy ways.
In 1836, moneylender Ebenezer Scrooge (Patrick Stewart) buries his business partner Jacob Marley (Bernard Lloyd) before returning to work at his counting house. Seven years later, on Christmas Eve, Scrooge's loyal and meek clerk Bob Cratchit (Richard E. Grant) becomes criticized by Scrooge's cruel and bitter ways. Scrooge declines his nephew Fred Bowley's (Dominic West) invitation to join him for Christmas dinner and dismisses two gentlemen collecting charitable donations. He even scares away a group of carol singers from his counting house by brandishing his walking cane. Scrooge reluctantly gives Cratchit Christmas Day off with pay so long as he comes inside earlier the next day. Returning home, Scrooge encounters Marley, who warns him that he must either repent his wicked ways or suffer a worse punishment than his own. Marley also informs Scrooge of the coming visits of three time-traveling spirits during the next three nights before departing.
At one o'clock, Scrooge is visited by the Ghost of Christmas Past (Joel Grey), who takes him back in time to his lonely childhood at his boarding school, where his friends come home for Christmas but he is unwanted, because his father turned against him after his mother died. Scrooge's sister Fran, Fred's eventual mother, says that their father has changed, agreeing that he could come home for Christmas. Scrooge is later employed by the kindly master Albert Fezziwig (Ian McNeice), who loved celebrating Christmas. Scrooge was in love with Belle (Laura Fraser), a young woman, and they became engaged. However, Belle chose to leave him when Scrooge proved unable to commit to her over his amassing fortune. Unable to watch any more memories, Scrooge puts outs the Ghost of Past with his cap and finds himself back in his house.
At two o'clock, Scrooge meets the Ghost of Christmas Present (Desmond Barrit), who shows him the joys and wonders of Christmas Day. They visit Bob Cratchit's house, where Scrooge is astonished to find that Martha Cratchit (Claire Slater) is a hardworking young girl and that Bob has a very sick son, Tiny Tim. Scrooge and the spirit also learn that Bob's family is surprisingly content with their small dinner. The spirit informs Scrooge that Tiny Tim will die unless something changes, and throws back at Scrooge his own words about the poor. The spirit then shows Scrooge Christmas being celebrated on a lighthouse, on a ship, and by miners. The spirit also shows Fred's Christmas party, where he defends his uncle from his guests' sarcastic remarks. The spirit shows prisoners celebrating the carols before suddenly aging, informing Scrooge his life is ending and warning him to beware of two wretched children named Ignorance and Want. The Ghost of Present then disappears.
The Ghost of Christmas Yet to Come arrives and takes Scrooge into the future. At the stock exchange, Scrooge sees his business associates callously discuss a man's death and how they have no intention of attending his funeral as they secretly loathe him. In a living room, Scrooge sees his charwoman, his laundress, and an undertaker trading the man's stolen possessions. He asks to see anyone showing emotion for the man and is shown a couple celebrating how his death has freed them from debt. When asked to see tenderness connected with a death, the spirit transports Scrooge to Bob Cratchit's house, where Tiny Tim has died with his family mourning him. At a cemetery, the spirit reveals to Scrooge that he was the man who died after showing his name carved on a gravestone. Realizing this, Scrooge promises to change his greedy ways as the Ghost of Yet to Come closes its eyes and raises its head. The grave opens, and Scrooge sees his corpse, before falling into an abyss and awakening to find himself alive in his house.
Gleeful for his redemption, Scrooge finds the Ghosts had visited him all in one night instead of three, and that it is Christmas Day. Scrooge anonymously sends Bob's family a large turkey for Christmas dinner and ventures out among London's citizens to spread cheer, even singing carols in church. He reluctantly visits and reconciles with Fred, shares Christmas dinner with Fred's guests, and dances for the first time in many years. The next day, Scrooge plays a prank on Bob when he pretends to be about to scold him for lateness, but instead raises his salary and offers to assist his family however possible. A changed man, Scrooge comes around to treat everyone around him with kindness, generosity and compassion, and becomes a second father to Tim (who does not die and recovers), embodying the spirit of Christmas.