Avec désormais 24 points, les hommes de Roger Schmidt remontent en 8e position, à cinq longueurs de la première place européenne.
Berlin, qui occupait de son côté la 3e marche du podium avant cette journée, la dernière de la phase aller, rétrograde à la 5e place, avec 30 points.
Le Bayer a marqué par les Turcs Ömer Toprak (1-0, 12e) et Hakan Calhanoglu (2-0, 36e sur penalty, et 88e). Valentin Stocker (2-1, 44e) a répondu pour Berlin.
Pour l'anecdote, le penalty transformé par Calhanoglu pour Leverkusen met fin à une étonnante série de quatre penalties manqués consécutivement par Leverkusen en Championnat, sans compter celui tiré sur la barre contre Monaco en Ligue des champions, mais qui avait rebondit sur le dos de Morgan De Sanctis avant d'entrer dans le but.
"Nous n'avons pas fait un match extraordinaire, nous n'avons pas dominé l'adversaire comme nous le voulions, mais nous avons gagné", s'est félicité le directeur sportif du Bayer Rudi Völler: "Le Hertha est une très bonne équipe, nous avons tremblé un peu mais à la fin, la victoire est méritée".
Pal Dardai, l'entraîneur de Berlin, a estimé pour sa part que le 3e but encaissé à la 88e minute donnait une image faussée du match: "Le score de 3-1 ne reflète pas le bon match que nous avons fait, on aurait pu faire 2-2", a-t-il analysé.
Vendredi et samedi, les équipes du haut de tableau avaient toutes gagné, maintenant le statu quo en tête. Le Bayern (42 pts), vainqueur 2-1 à Fribourg, compte trois points d'avance sur Leipzig (39 pts), vainqueur 3-0 de Francfort.
Hoffenheim est 3e à 11 points (31 pts) et Dortmund 4e à 12 points (30 pts).
Dimanche à 17h30 (16h30 GMT), Mayence (11e, 20 pts) reçoit Cologne (7e, 25 pts) pour le dernier match de cette 17e journée.
Résultats de la 17e journée du Championnat d'Allemagne:
vendredi
Fribourg - Bayern Munich 1 - 2
samedi
Schalke 04 - Ingolstadt 1 - 0
Wolfsburg - Hambourg 1 - 0
Augsbourg - Hoffenheim 0 - 2
Werder Brême - Dortmund 1 - 2
Darmstadt - Mönchengladbach 0 - 0
Leipzig - Eintracht Francfort 3 - 0
dimanche
Leverkusen - Hertha Berlin 3 - 1
(16h30 GMT) Mayence - Cologne