The Poland international scored his 13th goal of the campaign after Reinartz scored twice to peg back the champions, who led early through Reus and Blaszczykowski
Marco Reus' exquisite finish was followed by a Jakub Blaszczykowski penalty as the away side took control inside the opening 10 minutes, before two goals from Stefan Reinartz drew the sides level after the break.
Blaszczykowski was denied by Bernd Leno from the penalty spot late on as he attempted to make the points safe, but Jurgen Klopp's team held on to leapfrog their opponents into second in the table.
Leverkusen were looking to bolster their position in the top two of the Bundesliga table with victory, and Gonzalo Castro almost gave them the perfect start inside the first minute but his attempted lob floated harmlessly over the bar.
Despite looking fragile in defence, the champions were at their flowing best going forward and were ahead after just three minutes, as Reus broke the offside trap and expertly chipped Leno from Lewandowski's perfectly weighted through ball.
Castro again found himself in the thick of the action, but he missed his kick when clean through on goal, and that proved costly as Klopp's side broke quickly and Leno was adjudged to have brought down Lewandowski, with the Poland striker bearing down on the goal.
The goalkeeper was slightly lucky to get away with just a booking for the transgression, but he had no chance with Blaszczykowski's cool spot-kick that sent the Germany Under-21 international the wrong way.
Sami Hyypia's side were not about to let their heads drop, and Stefan Kiessling, who was chasing his 100th Bundesliga goal, sent a diving header wide after finding space in the area.
Die Borrusen were a constant threat in attack, and Felipe Santana almost made it 3-0 when he rose highest at a corner, but his header flew narrowly wide.
Santana was quickly back in the action at the other end of the pitch, when he put in crucial challenge to deny Kiessling, as the striker looked to latch onto a low cross from the left.
With half-time looming, Daniel Carvajal forced reserve goalkeeper Mitchell Langerak into his first save of the game, but the Australian tipped the low shot at his near post behind with ease.
The home side introduced Sidney Sam from the substitutes' bench at half-time, and the midfielder was involved straight away as he saw a shot well parried by Langerak after being found on the edge of the area.
Langerak was becoming increasingly influential in the Dortmund goal, and he made a superb save to deny Kiessling from point-blank range before Mats Hummels blocked Andre Schurrle's follow-up on the line.
The hosts eventually found their way back into the game as Kiessling took on Lukasz Pisczek before crossing for Reinartz to finish from close range.
Four minutes later the BayArena outfit were level as Reinartz headed in at the back post after Stefan Boenisch headed across goal to complete a remarkable comeback.
Parity did not last long though, as Philipp Wollscheid's poor back pass was latched onto by Mario Gotze, and though Leno saved his poked effort, he could do nothing to prevent Lewandowski sliding home the rebound.
Lewandowski was a constant thorn in Leverkusen's side, and he won his team's second penalty of the match as he got in down the right hand side and forced Boenisch into a foul.
Blaszczykowski again stepped up but Leno guessed right and held onto the spot-kick which was struck low to his left.
Reus was the next man to try his luck as his curling free kick saw Leno pull off an acrobatic save after Omer Toprak was booked for a cynical challenge right on the edge of the area.
Jens Hegeler was brought off the bench with just over 10 minutes remaining, and he should have equalised with his first touch, but his free header from the edge of the six-yard box missed the target.
Schurrle had been quiet for most of the match, but he almost grabbed a point for the home side in the 85th minute, but his header from the edge of the area flew agonisingly wide.