Napoli hade ledningen i en dryg minut på Santiago Bernabéu.
Men roligare än så blev det inte för italienarna – i stället avgjorde Nico Paz med sitt första mål för Real Madrid.
Giovanni Simeone slog till efter nio minuter. Men inte ens en kvart senare var hemmalaget i förarsätet, efter mål av Rodrygo och Jude Bellingham.
I början av andra kvitterade Andre-Frank Zambo Anguissa innan den 19-årige argentinaren avgjorde.
Bellingham spelade fram Joselu till 4–2 på stopptid, vilket också blev slutresultatet.
Engelsmannen blev utsedd till matchens spelare av Uefa.
Real Madrids fortsatta äventyr i Champions League är tack vare de tre poängen säkrade.
Striden om andraplatsen står mellan Napoli och Braga, och den kampen avgörs i den sista omgången.