Ebenezer Scrooge (Jim Carrey) comienza las navidades haciendo uso de su habitual mezquindad, gritando a su fiel empleado (Gary Oldman) y a su alege sobrino (Colin Firth). Pero esa misma noche los fantasmas de las Navidades Pasadas, Presentes y Futuras se presentan en su habitación para llevarle a un viaje en el que tendrá que enfrentarse a una realidad que no quiere ver. Entonces el viejo Scrooge tendrá que abrir su corazón e intentar arreglar todo el mal que ha hecho antes de que sea demasiado tarde.