Isco off, Asensio on
Gareth Bale was introduced with 23 minutes remaining, but Asensio, who replaced Isco in the 79th minute, turned the tie on its head. Both teams were locked 1-1 after Ronaldo's spot-kick cancelled out Adrien Rabiot's opener.
Just four minutes after coming on, Asensio delivered.
PSG goalkeeper Alphonse Areola stretched to glove Spaniard Asensio's low shot from the left flank. But the rebound landed on Ronaldo's knee and fell into the net, putting Madrid ahead with eight minutes remaining.
Asensio also had a hand in what could prove to be the vital goal of the tie as his cross, from the left again, was finished by Marcelo two minutes later to complete the stunning comeback.
Zidane all praise for Ronaldo
While Real coach Zinedine Zidane was all praise for Ronaldo, he also lauded the impact of substitutes Bale, Asensio and Lucas Vazquez.
"With Isco in the team, we wanted to dominate midfield and he did a great job," he told reporters after the game. "He was mobile all night, particularly at the beginning of the game. We changed things towards the end because we knew Paris would tire and bringing on Asensio, Bale and Vazquez helped us to take advantage of that."
Thiago Silva benched
The game itself began at a breathless pace as Real sought to break the deadlock early on, while Neymar was given close attention by Nacho.
Zinedine Zidane chose to start with Isco ahead of Welsh forward Bale. With Dani Carvajal suspended for the game, Nacho played as a make-shift right back.
One stand out decision made by PSG coach Unai Emery was to leave out Thiago Silva on the bench and give a start to 22-year-old Presnel Kimpembe. Former Real Madrid star Angel Di Maria was also on the bench. Neymar, Edinson Cavani and Kylian Mbappe led the attack for the Paris team.
Neymar orchestrating the attack
PSG players appeared to look for Neymar as soon as they got possession of the ball in midfield.
Giovani Lo Celso picked up a caution after needlessly trying a back-heel deep inside his own half. The resulting free-kick was in a suitable range for Cristiano Ronaldo to try his luck. However, Ronaldo blazed it over the crossbar.
Madrid got another chance when Marcelo's low-driven pass released Ronaldo onto a one-on-one situation with Areola, which the latter saved brilliantly.
Visitors PSG then broke the deadlock when Kylian Mbappe whipped a low cross in from the right, and Neymar's impudent back-heel flick teed up Rabiot to give Paris the lead with a crucial away goal in the 33rd minute.
At the stroke of half-time, Lo Celso needlessly put his hands on Toni Kroos, and referee Gianluca Rocchi pointed to the spot.
Ronaldo stepped up and fired to the bottom left.
Neymar was perhaps fortunate to avoid a second yellow card after Rocchi elected not to book the forward for simulation on the hour mark.
Mountain to climb for PSG
While a two-goal deficit can be a mountain to climb for the French team, they have an away goal to their advantage.
Will Neymar ride PSG into the Champions League quarter-finals or will Madrid carry on their Champions league form in search for the club's 13th title?
The second leg will be played on March 7 at Parc des Princes.
Match result: Real Madrid (Cristiano Ronaldo 45 pen, 83, Marcelo 86) bt PSG (Adrien Rabiot 33)