Lewandowski netted the only goal of the game in the 55th minute, but Dortmund should have won more convincingly as they created enough chances to win by a rugby score.
Bremen lost their unbeaten start to the season, but apart from a Marko Arnautovic effort before half-time and Franco Di Santo shot, they spent much of the game defending their own goal.
The chances came thick and fast for the home side with Marco Reus terrorising the Bremen defence.
A combination of Bremen goalkeeper Sebastian Mielitz and some wasteful finishing ensured the visitors were still in the game after half an hour.
The crossbar then came to Bremen's rescue as Jakub Blaszczykowski's shot cannoned out. Lewandowski then went close several times before Arnautovic almost silenced the home fans on the stroke of half-time, his shot brushing the far post on its way wide.
It was a similar story in the second half with Dortmund dominating, and they finally scored 10 minutes in.
Reus squared the ball from the right to the unmarked Lewandowski who had an easy tap-in.
Di Santo came on for his Bremen debut and he almost marked it with a goal, testing Roman Weidenfeller's alertness four minutes from time.
An equaliser would have been cruel on Dortmund, but their failure to add a second meant they had to suffer for their third win in a row.