Brazilian Casemiro scored a stunning second-half goal to cap a thrilling comeback after Lorenzo Insigne's audacious eighth-minute opener had threatened to pull off an upset for the visitors.
That was the way it stayed until the break when Kroos stepped up to notch only his second goal in 30 games for the club this term.
However, Real were level 10 minutes later as Karim Benzema head home Dani Carvajal's cross from the right flank for his 51st Champions League goal.
Cristiano Ronaldo has failed to score in his last 523 minutes of Champions League action, his longest drought in the competition at Real Madrid.
Zinedine Zidane opted for a change in the 71st minute as Pepe replaced Sergio Ramos, before Reina denied James Rodriguez with a fine save.
Bruno Mars & The Time Honor Prince at the Grammys
Audience members like actor and comedian Shawn Wayans were showing off their best "jungle dance" moves in the crowd. James Corden takes us back to Minneapolis 1985 where the sky is purple, glam meets fun and leather meets lace.
Down 3-1, Napoli pushed for another goal but could not finding it, wasting a couple quality chances that could come back to haunt the side in the second leg.
Four minutes after the restart, however, Madrid took the lead for the first time in the tie. While he got an assist for Toni Kroos in a strong 3-1 win, he was unable to bring an end to his dry spell which now stands at 523 minutes.
Madrid sensed the chance to go for the kill and they added a third just five minutes later in spectacular - and unlikely - fashion.
Madrid dropped deeper in a bid to soak up some late Napoli pressure and, with the exception of a Callejon goal that was correctly ruled out for offside, they held firm to secure what could prove to be an insurmountable lead.