Danny Welbeck opened the scoring and, although Ronaldo netted a first-half equaliser, that is how it stayed to set up a fascinating second leg.
Real began the brighter and there was a warning for Sir Alex Ferguson’s side when David De Gea tipped a Fabio Coentrao effort onto the far post early on.
But it was United who opened the scoring on 20 minutes after Shinji Kagawa was a little fortunate to be awarded a corner following a challenge with Sergio Ramos.
Wayne Rooney swung the subsequent set-piece in from the left and Welbeck did well to pull back from the goal-line before nodding expertly past Diego Lopez.
That left the Bernabeu stunned but, just as the visitors were growing in confidence, there was a riposte from a familiar figure on the half-hour mark.
Angel Di Maria’s delivery from the left was met by Ronaldo, who seemed to hang in the air before expertly heading past De Gea.
Real twice went close after the interval through Di Maria before Raphael Varane got the benefit of the doubt for a challenge on Patrice Evra when the United skipper looked to be clean through on goal.
Jose Mourinho’s side continued to dominate the ball and De Gea saved well with his feet from Coentrao on the hour mark.
But United remained a threat on the break and Van Persie had a double chance to put his team in front only to see his first shot hit the woodwork and the second cleared off the line by Xabi Alonso.
Despite heavy pressure from the home side, it was Van Persie who forced the final chance of the game as his left-footed effort was saved well by Lopez in injury time.