אבנזר סקורג' (ג'וני דפ) הוא אדם זקן וקמצן שחי בלונדון של המאה ה-19, מוקף בבדידות ובקנאה לעושר. חייו משתנים באופן דרמטי כאשר רוח רפאים של שותפו העסקי לשעבר, ג'ייקוב מארלי (יאן מק'קלן), מופיעה לפניו ומזהירה אותו מפני גורלו האפל אם לא ישנה את דרכיו. בעקבות המפגש המפחיד, סקורג' יוצא למסע על-טבעי שבו הוא פוגש את רוח חג המולד של העבר (אנדראה רייסבורו), רוח חג המולד של ההווה (טראמל טילמן) ורוח חג המולד של העתיד (רוברט סטרנג'). כל אחת מהרוחות חושפת בפניו זווית אחרת של חייו: מהזיכרונות הטובים והכואבים של העבר, דרך המציאות הקשה שבה הוא חי כיום ועד למה שעתיד לבוא אם לא יפעל לשינוי.
במהלך המסע, סקורג' מתמודד עם טעויותיו, עם היחסים המורכבים שלו עם משפחתו ועם העובדים שלו, ביניהם בוב קראצ'יט (רופרט גרינט) ופרד (סאם קלאפלין). הוא נחשף לסבלם ולחוסר האושר שנגרם כתוצאה מהקמצנות שלו ומאופיו הקשה. המפגשים עם הרוחות מאלצים אותו להרהר מחדש על חייו ועל הערכים שחשובים באמת. הסיפור, המבוסס על "שיר חג המולד" מאת צ'ארלס דיקנס, מציג את מאבקו של סקורג' להשיג הזדמנות שנייה, להיפתח לאהבה ולחמלה ולמצוא את האושר האמיתי. המסע שלו הוא לא רק מסע בזמן אלא גם מסע פנימי של התמודדות עם העבר והווה, במטרה לשנות את עתידו ולהפוך לאדם טוב יותר.
