The Czech left-back turned home a pass from substitute Simon Rolfes, the ball going in off the post.
Kadlec had come close eight minutes earlier, when his free-kick was palmed away by Bremen keeper Tim Wiese.
Michael Ballack made his first start of the season for Leverkusen, and Peruvian striker Claudio Pizarro was included in Bremen's squad as a substitute after his long injury layoff.
Lennart Thy, who got the nod over Pizarro to start, missed a glorious first-half chance for Werder, when he fired over the bar from three metres.
In Sunday's other game, Israeli striker Itay Shechter snatched an 80th minute equaliser to rescue a 1-1 draw for Kaiserslautern against visitors Augsburg.
The Bundesliga newcomers struck after 10 minutes, when Sascha Molders was sent through to fire in his third goal in two games, but new signing Shechter weaved through the defence and released a powerful left-footed low drive to level.
The promoted Bavarians were better in the first half and missed a string of clear chances to double their lead with Kaiserslautern looking out of sorts.
The hosts upped the tempo in the second half and came close more than half a dozen times, only to be denied by goalkeeper Simon Jentzsch.
He could do nothing, though, to stop 24-year-old Shechter's missile from just inside the box that gave Kaiserslautern their first point from two games.
Champions Borussia Dortmund suffered a 1-0 defeat at Hoffenheim on Saturday, while Luiz Gustavo scored in stoppage-time to give Bayern Munich a 1-0 win at VfL Wolfsburg. Both teams have three points after two games.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.