Kylian Mbappe scored his 50th Champions League goal while Vinicius Jr and Jude Bellingham were also on target as Real Madrid secured a much-needed win against Atalanta.
The Spanish giants have struggled in Europe this year, having lost three of their five games before Tuesday’s match in Italy.
France international Mbappe got the ball rolling with a goal in the 10th minute, breaking clear of his marker before finishing smartly.
It was his 12th goal since joining Real in the summer and he should have had a second later in the first half when he charged through the middle, but his shot from outside the box was saved.
However, the away side were dealt a blow nine minutes before half time when Mbappe appeared to suffer an injury and, although he was able to walk off the pitch, he was replaced by Rodrygo.
Atalanta then equalised on the stroke of half time when Charles De Ketelaere scored a penalty after Sead Kolasinac went down inside the box.
Real battled back after the break as Vinicius Jr found the bottom corner with a neat finish on his return from a hamstring injury before Bellingham fired home for his first goal in the Champions League this season.
Ademola Lookman gave Atalanta hope with his 11th goal of the season, whipping a shot in at the near post, but Real held off late pressure to take three crucial points.
The win moved Real up to 18th in the 36-team league and three points off the top eight, who qualify automatically for the knockout stage.
Atalanta, meanwhile, are ninth on 11 points.