Ebenezer Scrooge (Guy Pearce) ist ein geiziger Unternehmer im London des Viktorianischen Zeitalters. Da er schon sich selbst keinen Komfort gönnt, ist er auch gegenüber seinen Angestellten sehr knauserig. Das wird zum Weihnachtsfest deutlich, als er nicht nur keine Geschenke macht, sondern auch einfordert, dass die Angestellten an den feierlichen Tagen zur Arbeit erscheinen. Des Nachts wird er vom Geist seines ehemaligen Geschäftspartners Jacob Marley heimgesucht. Drei Geister gewähren Scrooge einen Blick auf das Weihnachtsfest seiner Jugend, das aktuelle Fest aus den Augen seiner Angestellten und auch einen Ausblick auf eine grimme Zukunft.