Wie jeden Tag zeigt sich Ebenezer Scrooge (Jim Carrey) auch am Heiligen Abend als Geizhals und Misanthrop, ob er nun seinen getreuen Buchhalter (Gary Oldman) anblafft oder seinen gut gelaunten Neffen (Colin Firth). Wenig später begegnet er dem Geist seines verstorbenen Geschäftspartners Joseph Marley, der im Jenseits den Preis für seine Herzlosigkeit bezahlt. Marley, der Scrooge ein ähnliches Schicksal ersparen möchte, erzählt ihm, dass er von drei Geistern Besuch bekommen wird. Und in der Tat: Die Geister der vergangenen, gegenwärtigen und künftigen Weihnacht entführen den alten Scrooge auf eine Reise, die ihm letztendlich die Augen öffnet. Dabei wird er mit Wahrheiten konfrontiert, die er am liebsten verleugnen möchte, doch er muss sein Herz öffnen und seinen jahrelangen Groll ablegen, bevor es zu spät ist.