The 29-year-old central midfielder joined Leipzig in 2017 and his contract was due to expire at the end of the season. The extension keeps him at the club until June 2023.
Kampl played six games in all competitions, with three starts, due to ankle problems before the Bundesliga was stopped amid the coronavirus pandemic.
Kampl used the break to recover and has scored one goal and set up two more in six starts since the league resumed last month.
“Despite my injury, the club made it clear that they would like to keep me for the coming years and I think I’ve paid back their support since my return,” he said on the Leipzig website.
Kampl was born in Germany but represents his parents' country of Slovenia internationally. He has two goals in 28 appearances for the national team.