City opened up a 2-0 lead and Real Madrid never made it level over 90 minutes as Gabriel Jesus, Phil Foden, and Bernardo Silva all joined De Bruyne on the score sheet.
Karim Benzema and Vinicius Junior scored on either side of halftime to bring the score to 2-1 and 3-2, but Carlo Ancelotti’s Real can be thankful to be down only two goals as City ran all over Madrid in the first half.
The second leg comes Tuesday at the Bernabeu, as City looks to return to the European Cup final for a second-successive year and Real looks to keep alive its hopes of a record 14th title.