Adrien Rabiot sent PSG into a 33rd-minute lead at the Bernabeu, but a double from Ronaldo - including one from the penalty spot - and a late Marcelo effort saw the reigning champions turn things around in the Spanish capital.
As for PSG, Edinson Cavani, Neymar and Kylian Mbappe all featured, but there was no spot in the XI for either Angel di Maria or Thiago Silva as Giovani Lo Celso and Presnel Kimpembe were both handed starts.
It was the home side that had the first half-chance of the match inside three minutes, but Ronaldo could only fire wide of the far post after meeting an excellent pass from Isco.
PSG captain Marquinhos then almost turned into his own net as the away side struggled to clear a corner from the right.
PSG's first sight of the Real Madrid goal arrived in the seventh minute when Yuri Berchiche drove into the penalty box, but the left-back's effort was always drifting wide of the post.
Ronaldo fired a 25-yard free kick over the PSG goal in the 26th minute, before the Portugal international saw his close-range attempt kept out by Alphonse Areola moments later as opportunities continued to arrive.
All of PSG's attacking work was going through Neymar, and the Brazilian, who picked up a booking in the early stages for a rash challenge on Nacho, fired into the arms of Keylor Navas in the 30th minute.
The visitors took the lead in the 33rd minute, however, when Rabiot scooped the ball into the back of the net after Nacho, who tangled with Neymar, failed to clear a cross from Mbappe.
Ronaldo again struck one over the PSG crossbar in the 38th minute as Real Madrid looked to hit back, before Cavani saw his strike deflected just wide down the other end.
The home side equalised in the 45th minute, however, when Ronaldo scored from the penalty spot after Lo Celso had pulled Toni Kroos to the ground inside the box. It was the Portuguese's 100th Champions League goal for Real Madrid, and it levelled the first leg at 1-1.
Los Blancos started the second half on the front foot, with Ronaldo just failing to meet an Isco cross in the 48th minute during a difficult period for the visitors.
A breakaway almost saw PSG score their second though as Mbappe, who had been picked out by Neymar, brought a smart save from Navas. Rabiot then had a powerful strike blocked by Sergio Ramos as the visitors continued to threaten.
Benzema just failed to meet a low cross from Isco in the 61st minute as opportunities continued to arrive at both ends, before PSG boss Unai Emery made the first change of the match - introducing Thomas Meunier for Cavani in what was a defensive change.
Bale then replaced the ineffective Benzema for the hosts in the 68th minute, but the alterations did not change the tempo of the match as play continued to flow from end to end.
Kimpembe had a goal-bound strike blocked by Marcelo in the 73rd minute, and it was PSG that were creating the better chances entering the final stages of the first leg in Madrid.
Marco Asensio and Lucas Vazquez came off the home side's bench for the final 10 minutes, and Real Madrid took the lead in the 83rd minute when Ronaldo bundled home from close range after Areola could only palm a cross from Asensio into a dangerous area.
Mbappe came close to equalising for the visitors late on, but the Frenchman saw his attempt saved by Navas, and Real Madrid scored a third in the 86th minute when Marcelo turned a low Asensio cross into the bottom corner of the net to secure a two-goal advantage ahead of the second leg in Paris.
REAL MADRID (4-3-3): Navas; Nacho, Varane, Ramos, Marcelo; Kroos, Casemiro (Lucas 79'), Modric; Isco (Asensio 79'), Benzema (Bale 68'), Ronaldo
PSG (4-3-3): Areola; Alves, Marquinhos, Kimpembe, Yuri; Verratti, Lo Celso (Draxler 85'), Rabiot; Neymar, Cavani (Meunier 66'), Mbappe