Union Berlin struck twice late in the game to come from a goal down and beat host RB Leipzig 2-1 on Saturday, taking revenge for its midweek last-gasp German Cup semi-final exit at the hands of the same opponents.

Sven Michel's 86th-minute goal cancelled out Yussuf Poulsen's opener for Leipzig in the 46th, before Kevin Behrens drilled in an 89th-minute winner.

Leipzig had beaten them on Wednesday by the same score thanks to Emil Forsberg's stoppage-time winner.

Leipzig dropped to fourth place on 54, with Bayer Leverkusen in third on 55 following its 4-1 win over relegated Greuther Fuerth. Freiburg is fifth on 52, with Union in sixth on 50.

FOLLOW LIVE:Bayern Munich 3-1 Dortmund Highlights: Bayern wins Bundesliga with Der Klassiker win  

Poulsen scored a minute after the restart as the Europa League semi-finalist looked to tighten its hold on third spot.

Leipzig, which faces Rangers in the Europa League last four on Thursday, was hardly a threat in the first half.

But Poulsen curled his low shot in a minute after the restart before Nordi Mukiele came close to a second in the 73rd when he hit the post from a tight angle.

Instead, Union left it late to strike twice, stunning the 45,000 crowd.

Bayern Munich, in top spot on 72 points, can seal the title with a win over second-placed Borussia Dortmund later on Saturday.