Jest rok 1860. Skąpy i bezduszny Ebenezer Scrooge (Albert Finney) jest zakochany jedynie w swoim bogactwie. Nie podziela ogólnej radości zbliżających się Świąt Bożego Narodzenia. W Wigilię, Scrooge poznaje ducha swojego zmarłego towarzysza Jacoba Marleya (Alec Guinness). Duch Marleya żałuje, że po śmierci został ukarany za bezduszność i chciwość. Nie chce tego samego losu dla Scrooge. Na jego prośbę Scrooga odwiedzą trzy duchy, które pomogą mu się zmienić. Będą pojawiać się jeden po drugim przez trzy noce...