BVB saw goalkeeper Roman Weidenfeller and coach Jurgen Klopp sent off as Rafa Benitez's side secured a narrow win
The Italians opened the scoring early on as Gonzalo Higuain nodded an in-swinging cross home, and the hosts' task was made infinitely easier just before halftime as Mats Hummels departed injured and Roman Weidenfeller inexplicably handled outside the box to earn himself a red card.
Dortmund's threat was significantly blunted by those blows - as well as Jurgen Klopp's dismissal to the stands - and it was helpless to prevent a fantastic long-range free-kick from Lorenzo Insigne doubling Napoli's lead.
But there was time for the 10-man Germans to grab a late consolation when Juan Camilo Zuniga flicked a cross into his own net with five minutes of normal time remaining.
With no injury worries of note among his squad, Rafael Benitez named a strong, attacking line-up including the likes of Marek Hamsik, Lorenzo Insigne and Jose Callejon. The visitors, meanwhile, named a patched-up starting XI due to the absences of Ilkay Gundogan, Lukasz Piszczek and Sebastian Kehl.
Despite the makeshift nature of Klopp's team, Dortmund undoubtedly made the better start in Naples. But the host responded in kind, with a five-minute spell of pressure leading to Insigne driving narrowly wide before Higuain was denied a one-on-one chance by a brilliant Hummels tackle.
The topsy-turvy nature of the first half did not let up, with Lewandowski the recipient of the next clear opportunity. The Pole latched onto a fabulous through ball to sneak into the box but could not beat the sprawling Pepe Reina in the Napoli goal.
And, perhaps unsurprisingly, last year's Champions League runner-up was punished for that miss in the very next attack. Zuniga picked the ball up on the left-hand side before swinging in an inch-perfect cross that Higuain nonchalantly headed to the far corner of the goal to the send the home crowd into raptures.
On the touchline, Dortmund coach Klopp remonstrated angrily with the fourth official over his failure to allow Neven Subotic back onto the pitch following a head injury, but his rant only served to get him thrown out of the match.
Dortmund received a further blow just before halftime, as it had to replace injured center back Hummels with forward Pierre-Emerick Aubameyang.
But things went from bad to worse seconds later as goalkeeper Weidenfeller rushed out of his box to meet the ball but could only handle to prevent Higuain breaking through and deservedly saw red. Jakub Blaszczykowski subsequently made way for substitute shot-stopper Mitchell Langerak before the break.
Dortmund began the second half understandably deeper in an attempt to nullify its opponent's numerical advantage.
However, it mattered little in the end, as Insigne ensured the Italians would take a two-goal lead in fabulous fashion. The 22-year-old produced an unstoppable free-kick from 30 yards out that rattled the crossbar on the way past a helpless Langerak.
Aubameyang upped the stakes in terms of audacious efforts in the immediate aftermath as he struck the bar from distance before Dries Mertens also got involved as his clever free-kick to the near post almost snuck in.
Dortmund was given hope in the dying moments as Zuniga needlessly swung at a cross into the box to leave Reina no chance of stopping the ball bouncing over the line off the post. However, the visitors could not launch a late comeback to avoid defeat.