Ebenezer Scrooge (Guy Pearce) ist ein verbitterter alter Mann, der die Weihnachtsfeiertage verachtet. Im Verlauf von Heiligabend wird er von drei Geistern besucht, die ihm seine Vergangenheit (Andy Serkis), Gegenwart und Zukunft (Jason Flemyng) zeigen.