Bundesliga Wrap: Braunschweig, Nuremberg slip closer towards the drop
The bottom club are seven points adrift of 15th-placed Stuttgart with two games remaining, which means Braunschweig will have to overhaul Nuremberg and Hamburg to secure a play-off spot in order to have any chance of avoiding an immediate return to the second tier.
John Brooks put Hertha in front in the 61st minute at the Olympiastadion, before Tunisia forward Sami Allagui scored his 10th goal of the season to confirm victory for the hosts.
Nuremberg are just a point further ahead after suffering an away defeat to Mainz by the same scoreline, Shinji Okazaki and Christoph Moritz netting as Thomas Tuchel's men sealed a win that keeps hopes of a UEFA Europa League berth intact.
At the other end of the table Bayer Leverkusen failed to capitalise on a slip up from Wolfsburg in the race for the final UEFA Champions League spot.
An 83rd minute equaliser from Marco Terrazzino earned Freiburg a 2-2 draw at Wolfsburg, who could not claim all three points despite a double from midfielder Ivan Perisic.
But fourth-placed Leverkusen missed the chance to take advantage and open up three-point gap to Wolfsburg as they were held to a 2-2 stalemate by Borussia Dortmund.
Leverkusen twice took the lead through Lars Bender and Gonzalo Castro, but a strike from Oliver Kirch and a Marco Reus penalty sealed a share of the spoils for Dortmund.
Champions Bayern Munich prepared for the second leg of their Champions League semi-final against Real Madrid with a comprehensive 5-2 triumph over Werder Bremen.
Werder took a surprise lead in the 10th minute as Theodor Gebre Selassie finished off a fine counter-attack, only for Franck Ribery to craft the perfect response to questions about his form 10 minutes later with an equaliser.
However, the visitors regained the lead nine minutes before the break as Franco Di Santo played in Aaron Hunt to slot home.
But Bayern found another gear in the second period to put the game beyond doubt, a double from former Werder striker Claudio Pizarro putting the hosts ahead before Bastian Schweinsteiger and Arjen Robben made sure of the points.
Elsewhere, Hoffenheim and Eintracht Frankfurt played out a 0-0 draw.