Bayer Leverkusen lost 1-0 to Union Berlin as their winless run stretched to four games.
Teuchert, who had hit the woodwork early in the second half and missed another chance on the hour, scored on the break in the 88th to give his team a deserved win against lacklustre Leverkusen, now without a win in their last four games.
Dortmund lose ground on top four after rescuing draw
Leverkusen had a good chance in the first half with Nadiem Amiri but found it difficult to crack open Union's solid defence and were punished for their lack of pressure.
Union, who hit the woodwork twice, are on 28 points in fourth place after their sixth straight game without a loss, one point behind third-placed Leverkusen, who have managed just one point from their last four games.
Leverkusen sign midfielder Gray from Leicester City
Wolfsburg beat Leverkusen 1-0 to move into top four