Leipzig, already eliminated from the Champions League, have now lost three league matches in a row for the first time in their top division history and are already 13 points off the pacesetters siting at eight on the standing.
Marsch, who joined this season to replace Julian Nagelsmann, has seen his team win five of their 14 league games this term.
The latest loss puts the American, who was not at the match due to being in COVID-19 quarantine, under more strain.
Union, who moved up to fourth, took the lead when Taiwo Awoniyi stabbed the ball in at the far post after six minutes.
Leipzig, whose last Bundesliga away win was in April, levelled seven minutes later with Christopher Nkunku's 25-metre shot as goalkeeper Andreas Luthe misjudged the ball's flight.
With the snowfall in the capital getting heavier after the break, Union struck back when Timo Baumgartl benefitted from Max Kruse's deflected shot to tap home from close range in the 57th.
Union missed several golden chances in a strong finish but Leipzig keeper Peter Gulacsi pulled off several stunning saves to keep the score down.