On Christmas Eve, in 19th century London, Charles Dickens (played by Gonzo the Great) and his friend Rizzo act as narrators throughout the film. Ebenezer Scrooge (Michael Caine), a cold-hearted, bad-tempered and selfish money-lender, does not share the merriment of Christmas. Scrooge rejects his nephew Fred's invitation to Christmas dinner, dismisses two gentlemen (played by Dr. Bunsen Honeydew and Beaker) collecting money for charity, and tosses a wreath at a carol-singing Bean Bunny. His loyal employee Bob Cratchit (played by Kermit the Frog) and the other bookkeepers request to have Christmas Day off since there will be no business for Scrooge on the day, to which he reluctantly agrees. Scrooge leaves for home while the bookkeepers celebrate Christmas. In his house, Scrooge encounters the shackled ghosts of his late business partners Jacob and Robert Marley (played by Statler and Waldorf), who warn him to repent his wicked ways or he will be condemned to suffer in the afterlife like they were, informing him that three spirits will visit him during the night.
At one o'clock, Scrooge is visited by the childlike Ghost of Christmas Past who takes him back in time to his childhood and early adult life, with Dickens and Rizzo hitching a ride too. They visit his lonely school days, and then his time as an employee under Fozziwig (Mr. Fezziwig from the original story, played by Fozzie Bear), who owned a rubber chicken factory. Fozziwig and his mother throw a Christmas party, where Scrooge meets a young woman named Belle, with whom he falls in love. However, the Ghost shows Scrooge how Belle left him after he chose money over her. A tearful Scrooge dismisses the Ghost as he returns to the present.
At two o'clock, Scrooge meets the gigantic, merry Ghost of Christmas Present, who shows him the joys and wonder of Christmas Day. Scrooge and the Ghost visit Fred's house where Scrooge is made fun of for his stinginess and general ill will toward all. Scrooge and the spirit then visit Bob Cratchit's house, learning his family (Mrs. Cratchitt is played by Miss Piggy) is content with their small dinner. Scrooge also takes pity on Bob's ill son Tiny Tim (played by Robin the Frog). The Ghost of Christmas Present abruptly ages, commenting that Tiny Tim will likely not survive until next Christmas. Scrooge and the Ghost go to a cemetery, where the latter fades away. The Ghost of Christmas Yet to Come then approaches Scrooge, appearing as a tall, silent, cloaked figure. While Dickens and Rizzo abandon the audience to avoid being frightened, the Ghost takes Scrooge into the future.
Scrooge and the Ghost witness a group of businessmen discussing the death of an unnamed colleague, saying they would only attend the funeral if lunch was provided. In a den, Scrooge recognizes his charwoman, his laundress, and the local undertaker trading several stolen possessions of the deceased to a fence named Old Joe. The Ghost then transports Scrooge to Bob's house, discovering Tiny Tim has died. Scrooge is escorted back to the cemetery, where the Ghost points out his own grave, revealing Scrooge as the man who died. Realizing this, Scrooge vows to change his ways.
Awakening in his bedroom on Christmas Day, Scrooge decides to surprise Bob's family with a turkey dinner, and ventures out with Bean, Dickens, Rizzo, and the charity workers to spread happiness and joy around London. Scrooge goes to the Cratchit house, at first putting on a stern demeanor before revealing he intends to raise Bob's salary and pay off his mortgage. Dickens narrates how Scrooge became a second father to Tiny Tim, who escaped death. Scrooge, the Cratchits, and the neighborhood celebrate Christmas.