City's Bernardo Silva and Mateo Kovacic both misfired in the shootout to put Madrid in the driving seat
Belgian Hazard picked up the ball in his own half in the ninth minute and with a burst of speed wrong-footed defenders, cut inside Michael Keane and sent a right foot shot low past a diving keeper Tom Heaton.
Willian's contribution came in the 41st minute after an exchange of passes between Hazard and Spain striker Diego Costa. Costa sent the ball to the Brazilian who sidestepped Stephen Ward and drilled the ball into the net.