Lewandowski scored with a free kick and a penalty to take his tally to a Bundesliga-leading 25 goals, overtaking Dortmund counterpart Pierre-Emerick Aubameyang.
However, Lewandowski was forced off with an apparent right shoulder injury, and Bayern will be hoping the striker is fit to face Madrid in the first leg of their Champions League quarterfinal in Munich on Wednesday.
Dortmund, on the other hand, was without Marco Reus, Andre Schuerrle, Julian Weigl, Shinji Kagawa, and Erik Durm, while Lukasz Piszczek stayed on the bench, forcing coach Thomas Tuchel to start 18-year-old defender Felix Passlack.
Franck Ribery fired the home side off to a great start, blasting home after Philipp Lahm sent the ball in, and Lewandowski's free kick made it 2-0 inside 10 minutes.
- FOX Soccer (@FOXSoccer) April 8, 2017
Arjen Robben twice went close and Lewandowski might have got another before Raphael Guerreiro pulled one back to allay Dortmund's fears of a rout. Arturo Vidal's botched clearance went straight to Guerreiro and he hammered the ball to the top left corner.
Robben again went close, then drew a good stop from Roman Buerki, before tempers frayed with penalty appeals at either end, and Lewandowski getting a kick in the face from Marc Bartra.
Robben finally got his goal early in the second half, a copy of countless goals he'd scored before by cutting in from the right before shooting with his left boot.
Bayern defender Jerome Boateng cleared Aubameyang's effort off the line before Lewandowski was brought down by Buerki at the other end. He dusted himself off and duly scored from the spot before indicating the problem with his shoulder.
Bayern maintained its 10-point lead with six games remaining.
Dortmund, which hosts Monaco in the Champions League on Tuesday, stayed fourth after failing to capitalize on third-placed Hoffenheim's earlier defeat in Hamburg. The top three automatically qualify for Europe's premier competition.
SCHALKE 4, WOLFSBURG 1
Wolfsburg's defeat left the 2009 Bundesliga champion uncomfortably close to the relegation zone after two straight losses.
Wolfsburg stayed one point clear of danger with only six games remaining, while Schalke eased its relegation concerns by moving to 10th, eight points clear.
LEIPZIG 1, BAYER LEVERKUSEN 0
Substitute Yussuf Poulsen scored in the third minute of injury time for Leipzig to stay on course for an automatic Champions League place from its debut season in the top flight.
Leipzig captain Willi Orban was sent off with two minutes remaining but there was still time for Emil Forsberg to set up Poulsen's winner.
"You can sense that we fully believe in ourselves. We're now in a top position for the last games," Leipzig coach Ralph Hasenhuettl said. His side stayed second, seven points clear of Hoffenheim.
HAMBURGER SV 2, HOFFENHEIM 1
After beating Bayern on Tuesday, Hoffenheim stumbled against Hamburg.
Forward Bobby Wood crossed for Aaron Hunt to score Hamburg's winner with a quarter-hour remaining, lifting the side four points clear of the relegation zone after its fourth straight win at home.
COLOGNE 2, BORUSSIA MOENCHENGLADBACH 3
After extending his contract to 2022, Cologne goalkeeper Timo Horn had to pick the ball out of his net after only 13 minutes. Horn conceded two more after halftime, including 'Gladbach captain Lars Stindl's 80th-minute winner.
FREIBURG 1, MAINZ 0
Nils Petersen converted from close range with 20 minutes remaining to leave Martin Schmidt's job as Mainz coach in danger after the side's fifth straight defeat.
Only goal difference was keeping Mainz out of the relegation zone, though that could change on Sunday when Augsburg, which also has 29 points, visits Hertha Berlin.