Ronaldo scored his 100th Champions League goal for title-holders Real from the penalty spot late in the first half to cancel out Adrien Rabiot's opener for the French side at the Santiago Bernabeu, set up by Neymar.
The Portuguese star then turned the ball home from close range with seven minutes left before Marcelo secured what could turn out to be a decisive first-leg lead ahead of the return in Paris on March 6 and sent nearly 80,000 home fans into raptures.
"These days are to be remembered, and what better way to do it than with the character we showed," Real skipper Sergio Ramos told Spanish television.
"We need to keep playing like that, with the desire to defend the Champions League. You can never consider Real Madrid to be dead and buried."
Rabiot said PSG were plagued by familiar problems
"We always say the same things and we always get caught out in the same way," Rabiot told beIN Sports.
"The problem is it's easy to score eight against Dijon, or four goals in league games. It is in these matches that you need to be decisive." "
The late collapse for PSG brings back echoes of the way they fell apart to lose 6-1 in Barcelona on their way to a humiliating exit at the same stage of the competition last season.
Neymar, in Barcelona's ranks then, could not make the difference for PSG, who now have a huge job on their hands to turn the tie around.
Having looked set to come away with a precious draw, the defeat piles the pressure on coach Unai Emery, but for Real the outcome is an enormous boost for their boss Zinedine Zidane.
Under pressure himself with Real flagging domestically, he needed this win, and will earn praise for his substitutions, with Marco Asensio coming off the bench to set up each of the two late goals.
That was after Zidane had taken a risk by leaving out Gareth Bale, a key element in the side that has won three of the last four Champions Leagues. The Welshman's place in the line-up was taken by Isco.
Emery went even further, dropping his captain Thiago Silva to make way for 22-year-old Presnel Kimpembe in the centre of the PSG defence.