Maximilian Mittelstaedt put the home side ahead in the 32nd with a thundering shot, but Leipzig’s Timo Werner responded with a penalty six minutes later.
Marcel Sabitzer then turned the game around on the stroke of halftime with a deflected shot.
Kevin Kampl then timed his run down the left wing to perfection to beat the offside trap and drill in Leipzig’s third in the 86th minute.
Werner then tapped in his 11th goal of the campaign in stoppage time before Davie Selke pulled one back for the hosts seconds later.
Leipzig are on 21 points, with Dortmund on 19 and Bayern a further point behind. Leaders Borussia Moenchengladbach entertain Werder Bremen on Sunday.
Edited by Felix Ajide