United left the Bernabeu with a crucial away goal thanks to Danny Welbeck's first header. The Red Devils now have an advantage over the two-legged clash which will be settled at Old Trafford on March 5.
Robin van Persie could have killed the game off in the dying minutes as he hit the post and had a mis-kicked shot cleared off the line by Xabi Alonso.
On the other end, Real dominated possession throughout the game, giving United's defence a hard time. Rafael had a difficult time at right-back trying to stop Ronaldo, while Mesut Ozil and Angel Di Maria were at their best.
The Madrid-born keeper De Gea was perhaps the best player on the pitch producing fantastic saves to deny Fabio Coentrao twice and playmaker Ozil.
Real's young centre-back Rafael Varane put in a glorious performance at the back along side Sergio Ramos but it was not the same with United's first meaningful attack. Real looked shaky in the few corners and were punished by Danny Welbeck in the 20th minute.
However, their lead lasted only 10 minutes with their former star Ronaldo scoring a brilliant header climbing high above Patrice Evra.
Real kept the tempo going, constantly testing United's defence and having a go at De Gea in goal.
Shakhtar Donetsk 2-2 Borussia Dortmund
Mat Hummels scored a crucial equaliser as Dortmund managed a 2-2 draw inthe first leg of their UEFA Champions League last-16 clash at Donbass Arena.
Darijo Srna out the home side ahead with a superb curling free-kick before striker Robert Lewandowski equalised for the visitors 10 minutes later. Douglas Costa thought he scored the winner in the 68th minute but Hummels smashed in a header three minutes from time. Dortmund head in to the second-leg with a two-goal advantage.