Schalke consolidated second spot and guaranteed their Champions League place for next season with a 2-1 triumph at Augsburg.
Borussia Dortmund missed the chance to go second in the Bundesliga as they drew 1-1 at Werder Bremen.
Marcel Risse's late free-kick earned bottom club Cologne a point from a 2-2 home draw with Schalke to keep slim survival hopes alive.
Mainz benefited from a bizarre penalty decision which helped to seal a controversial 2-0 victory over fellow strugglers Freiburg.
Mainz and Freiburg players were hauled back to the pitch after the referee had blown for half-time when a penalty was belatedly awarded via VAR.
David Abraham's late own goal sealed Werder Bremen a 2-1 home win and dealt Eintracht Frankfurt's Champions League hopes a blow.
©2018 Sky UK