The equaliser gave the Turin giants a foothold in the game and they were on top for the remainder of the first half, although the last chance fell to Real when Casemiro dragged a long-range effort wide of the left post just before half-time following a sustained spell of possession.
The Madrid outfit made a bright start to the second half as they looked to get back on top, with Luka Modric drilling a left-footed shot from 22 yards out into Buffon’s grasp on 54 minutes before Marcello lashed an effort high and wide of the left post from the edge of the box two minutes later.
After Isco fizzed a left-footed strike wide shot wide of the target from 20 yards out in the 59th minute, Casemiro restored their lead moments later with another deflected strike, this time off Sami Khedira, to beat Buffon at his right post.
Ronaldo struck again on 64 minutes to put the holders in a commanding position, the forward getting on the end of Modric’s cross from the right byline to slot past Buffon at the near post.
Marcello looked to set up the Portuguese superstar for his hat-trick nine minutes later with a cutback from the left, but Ronaldo steered the ball way over the crossbar from 10 yards out.
The Bianconeri had faded as an attacking force after the break, but Alex Sandro almost pulled one back eight minutes from time when he sent a glancing header inches wide of the left post from Dani Alves’ free-kick on the right.
However, their hopes were killed off just two minutes later when disgusting play-acting from Sergio Ramos got Juan Cuadrado sent off, after the substitute picked up his second booking in quick succession.
Marco Asensio put gloss on the victory in the final minute as he directed the ball into the bottom-right corner of the goal from six yards out after being picked out by Marcello on the left.