The Spain midfielder lit up an otherwise turgid San Siro affair with a finish right out of the top drawer shortly before the hour in Milan.
It proved the decisive moment against an Inter side – playing just three days on from beating Milan in the derby – lacking in creativity and Antonio Conte's men will have to show more in a huge Serie A clash with Lazio on Monday (AEDT).
Napoli has been well off the pace in the league but Gennaro Gattuso will take heart from a resolute defensive display that sets them up well for the return tie on 6 March (AEDT).
Dries Mertens scooped over from 20 yards during a drab opening, in which Lautaro Martinez should really have done better with a free header from Cristiano Biraghi's floated left-wing cross.
Daniele Padelli made a fine one-on-one stop when Mertens slipped in Giovanni Di Lorenzo, with Napoli's protests that the follow-up was handled by Stefan de Vrij going unheard.
Inter, as in the first half, attempted to play on the front foot without troubling David Ospina early in the second period – aside from a decent header from Romelu Lukaku that the keeper held with ease.
The game needed a flash of brilliance and Fabian delivered in the 57th minute, playing a neat one-two with Di Lorenzo before bending a fine left-footed effort past a despairing Padelli.
An equaliser almost arrived during a mad scramble 15 minutes from time where Lukaku and Christian Eriksen each nearly beat Ospina, who gratefully smothered the ball.
Eriksen and Alexis Sanchez provided some impetus off the bench and fellow substitute Danilo D'Ambrosio almost prodded Lukaku's last-minute flick-on past Ospina but Inter paid the price for a largely toothless display.