The Pole scored with 10 minutes to go in the first half, outjumping former team-mate Marcel Schmelzer to give Pep Guardiola's men a slender victory
The Poland international left Signal Iduna Park to join the reigning champions at the end of last season, and it was his 36th-minute header that separated the two sides on Saturday.
Lewandowski had failed to make much of an impact when he returned to Dortmund with Bayern in the DFL-Supercup back in August - a game that his former employers won 2-0.
But he showed his customary predatory instincts to convert the rebound and give Bayern a measure of revenge after Roman Weidenfeller had saved Thomas Muller's initial effort.
Lewandowski refused to celebrate his match-winner as a mark of respect to his old team.
That goal was his second in as many league games against Dortmund this season, after his equaliser in the 2-1 win in November, as he provided a victory that maintains Bayern's 10-point lead over Wolfsburg at the Bundesliga summit.
Pep Guardiola's side were buoyed by Philipp Lahm's first start since November following an ankle injury, and he played 69 minutes before being replaced by Thiago Alcantara, himself making his first appearance for almost a year after a serious knee problem.
Defeat leaves Dortmund 10th in the table, five points adrift of a Europa League place, while for Bayern it was a welcome return to winning ways after the 2-0 loss to Borussia Monchengladbach prior to the international break.
The opening exchanges were high in intensity, with Bastian Schweinsteiger and Pierre-Emerick Aubameyang both cautioned in the first 20 minutes as the tackles flew in.
Muller, recalled to the Bayern side as one of four changes from the loss to Gladbach, had the only notable chance in that period but his lofted effort drifted wide of the target.
The Germany attacker then played a big part in the winner, as Bayern edged in front nine minutes before the interval.
Lewandowski played a pass into Muller, whose shot was parried by Weidenfeller before Lewandowski beat Marcel Schmelzer to the ball and headed into the unguarded net.
Dortmund improved after the break and ought to have been level on the hour mark.
Marco Reus was the beneficiary of a fortunate ricochet as the ball ran kindly into his path, but with just Manuel Neuer to beat, he showed a lack of composure and fired wildly into the side netting.
Two minutes from the end, Dortmund troubled Neuer for the first time when Reus hit a free kick from 25 yards, but the Germany goalkeeper produced a superb one-handed save low to his right to preserve his clean sheet and ensure Lewandowski his place in the headlines.