It was Leipzig's sixth league win in a row and lifted them to 53 points with champions Bayern, on 52, ahead of their big game against Dortmund.
The Frenchman is now Leipzig's leading scorer in the Bundesliga with six goals.
Leipzig, who face out-of-form Liverpool on Wednesday for their Champions League last 16 second leg, scored twice more after the break.
Kampl again won possession in the 64th minute and Sorloth drilled in from the right from a Nkunku assist.
Emil Forsberg's shot from the edge of the box in the 79th made it 3-0 for Julian Nagelsmann's team.
"I am very satisfied. The first goal is the one that opened up the game," Leipzig coach Nagelsmann said. "Freiburg were very compact in their defending in the first half. It is not easy playing here and we have not won often here."
"After the second goal we found more space. We deserved to win even though it was a matter of patience."