Suat Serdar scored five minutes from time to send Schalke 04 joint top of the Bundesliga table on Friday night.
The hosts at the Veltins Arena took the lead midway through the first half when Benito Raman struck his second league goal of the season.
However, Union Berlin have sprung some big surprises so far in their debut top flight campaign and drew level 10 minutes before half-time from the penalty spot. The side from the capital had created a few good chances before levelling up.
Schalke 04 were the better side in the second half and David Wagner’s side claimed all three points in the final five minutes when Suat Serder curled a low shot into the net for his fifth goal of the season.
The result puts the Royal Blues on 25 minutes, alongside leaders Borussia Monchengladbach, who welcome SC Freiburg to Borussia Park on Sunday. Champions Bayern Munich and RB Leipzig could go top of the table before then as they are both in action on Saturday.