A fortuitous goal from Nacho proved decisive for 10-time champions Real to win 1-0 despite being outplayed for the majority of the first half of their Group A game at the Santiago Bernabeu.
“We managed to struggle through in the first half and in the second we had some good counter chances,” said Real coach Rafael Benitez.
“The return of (injured) players will help us in the next phase.”
PSG were on top throughout the first period but Adrien Rabiot's volley cannoned back off the foot of the post and Edinson Cavani squandered a great chance when left with just goalkeeper Keylor Navas to beat.
And when Toni Kroos let fly from distance just after the half hour, the ball spooned up off Thiago Silva and fell to Nacho — who had only come on for injured left-back Marcelo two minutes earlier — inside the area.
PSG goalkeeper Kevin Trapp initially came for the looping ball but as he backtracked from no-man's land, Nacho's casual side-foot spun wickedly on the bounce and dropped inside the far post.
Little happened in the second half but Angel Di Maria did hit the bar late on with a free-kick, although the French champions couldn't find the goal their play deserved.
Real qualified from Group A thanks to Shakhtar Donetsk romping to a 4-0 win over Malmo, a result which means a win for PSG in either of their last two matches will ensure they join Real in the last 16.