Union Berlin have cut Bayern Munich's lead on top of the table to three points after a come-from-behind 2-1 win at Bremen on Wednesday.
Werder, who were thrashed 7-1 by Cologne on Saturday, scored after 13 minutes through Amos Pieper but the defender turned villan just four minutes later when his poor back pass found Kevin Behrens, who found Janik Haberer for the equaliser.
Union thought they had the lead minutes later, but Sheraldo Becker's strike was ruled out for a handball by Behrens in the build-up.
Behrens was involved again in the first minute of the second half, heading in a corner while unmarked to give Union a valuable lead in their quest for a first ever Champions League berth.
Union took advantage of a 1-1 draw between Freiburg and Eintracht Frankfurt, both of whom could have joined the Berliners in equal second with a win.
Frankfurt's France striker Randal Kolo Muani scored just before halftime for a 1-0 lead, but Freiburg local boy Matthias Ginter equalised for the home side two minutes after halftime.
Also on Wednesday night, Bayer Leverkusen won their fifth-straight Bundesliga game, beating Bochum at home ahead of Sunday's blockbuster clash against Dortmund.
Leverkusen took the lead early through an eighth-minute penalty to Edmond Tapsoba. A second-half goal by Czech striker Adam Hlozek, set up by teenage midfielder Florian Wirtz on his return to the starting XI from an ACL tear, saw the home side claim all three points.
Elsewhere, Augsburg lifted themselves out of the relegation playoff places with a narrow 1-0 win over Borussia Moenchengladbach.
HALLER, REYNA SAVE DORTMUND
Earlier on Wednesday, American striker Gio Reyna scored a last-gasp winner in Borussia Dortmund's 2-1 victory over Mainz, securing the three points deep into injury-time.
The 20-year-old US international Reyna also scored the fourth in Dortmund's 4-3 home win over Augsburg on Sunday.
On Wednesday he nodded in a header with a minute of injury time remaining, sinking a dogged Mainz.
Dortmund lacked their usual fluency in attack, a consequence of missing the suspended Jude Bellingham.
Bellingham's absence, along with a long-term injury to Marco Reus and Mats Hummels starting from the bench, meant defender Niklas Suele captained Dortmund for the first time.
Manager Edin Terzic promised on Tuesday to fix the side's leaky defence, but Dortmund got off to the worst possible start when Lee Jae-Sung gave Mainz the lead in just the second minute.
Jae-Sung leapt past Julian Ryerson to head in a corner from Edimilson Fernandes, giving the home side their early lead.
Ryerson, playing just his second match for Dortmund after arriving from Union Berlin in January, quickly made up for his error, equalising just two minutes later with a deflected long-range effort.
With two goals after just four minutes, the game looked on course to match Dortmund's 4-3 home thriller over Augsburg from Sunday, but both teams dialled down the intensity for the remainder of the first half.
Terzic made a triple change after 61 minutes, bringing on wingers Reyna and Jamie Bynoe-Gittens – both of whom scored from the bench against Augsburg – alongside returning striker Sebastien Haller.
Haller had the crowd on their feet ten minutes after coming on when alone on goal near the penalty spot. But was a step too slow and saw the ball claimed by Mainz goalie Finn Dahmen.
With the match looking to be petering out into a draw, Reyna pounced on Haller's assist, sending the ball past Dahmen and into the back of the net.
Dortmund midfielder Julian Brandt hailed his side's "emotional victory" while Terzic tempered his glee with a reality check.
"With almost the last action (of the game), we are the lucky winner, (but) that could have gone in any direction.
"There is still a lot of work waiting for us."
Mainz's Danish manager Bo Svensson, whose side are only four points clear of the relegation spots, lamented Dortmund's "bitter" late winner, but said "there are many positive things we can take away.