Jesse Marsch's side missed numerous chances to build on their lead before they were punished by a Marco Reus equaliser early in the second half.
Leipzig quickly set about restoring their lead, with Nkunku hitting the post and Dortmund keeper Gregor Kobel making an outstanding double save to thwart Mohamed Simakan and then boot the loose ball away before forward Dominik Szoboszlai could pounce.
They eventually took advantage of their dominance when Yusuf Poulsen slid to the floor to send a cross from Nkunku inside the near post in the 68th minute.
Defender Nordi Mukiele had a headed goal disallowed later on for offside for the hosts but Poulsen's strike was enough to secure a first win for Leipzig over Dortmund in over four years.
The result left second-placed Dortmund on 24 points after 11 games, four behind Bundesliga leaders Bayern Munich who beat Freiburg 2-1 at home earlier on Saturday.
Leipzig climbed up to fifth on 18 points after claiming their fifth win of the season and Marsch felt his side deserved the victory.
"It was important that we rewarded our hard work," said the American coach. "We've been playing well in past weeks but haven't got the right results. We could definitely have score more goals and made it easier for ourselves."