Kylian Mbappe scored in the 10th minute as the night started wonderfully for Madrid – yet by the interval he had been taken off with an injury and Atalanta were level via a Charles De Ketelaere penalty.
Vinicius Junior, in his first game back from injury, took advantage of a fortunate ricochet to restore Madrid’s lead and Bellingham added a third goal three minutes later as the reigning champions briefly returned to their ruthless best.
Ademola Lookman smartly pulled a goal back for Atalanta and then laid what should have been the equaliser on a plate for Matteo Retegui in the final minute of added time – only for the substitute to volley over from inside the six-yard box.
Madrid avoiding becoming the first European champions to lose three straight games in their defence and the win leaves them on nine points, two behind Atalanta, who suffer a first defeat of the competition.