Kampl was born in Solingen, Germany.[3] His parents moved to Germany from Maribor, a city near the Austrian border in northeastern Slovenia.[4] Kampl has dual citizenship and could have played for Germany, but opted for Slovenia early on.
On 30 August 2010, he signed a one-season loan contract with SpVgg Greuther Fürth. Kampl made his first team debut on 29 October 2010 as a late substitute in a 2. Bundesliga tie with Erzgebirge Aue.[5] After only half a season for Greuther Fürth, he returned to Bayer Leverkusen during the 2010–11 winter transfer window.[6] Kampl made his Leverkusen 2010–11 season debut as a second-half substitute in the UEFA Europa League game against Metalist Kharkiv.
In the summer of 2011, Kampl transferred to 3. Liga side VfL Osnabrück.[7] After having played a great season for Osnabrück, he joined newly promoted 2. Bundesliga club VfR Aalen for a transfer fee of €250,000. However, he played only four matches for Aalen, scoring two goals and assisting another three.
This marvelous start drew the attention of well-financed Austrian champion Red Bull Salzburg and they acquired him just before the end of the transfer window by fulfilling his release clause in the amount of €3 million.[8] He was nominated for the best player of the Austrian Bundesliga at the beginning of the 2013–14 season, but had to eventually concede to Philipp Hosiner.
Borussia Dortmund
On 22 December 2014, it was announced that he would join Borussia Dortmund on a five-year contract for a €12 million fee on 1 January 2015.[9] He was originally going to RB Leipzig.[3] He made his debut on 31 January 2015.[10] On 28 April 2015, in the DFB-Pokal semi–final against Bayern Munich, Kampl came on in the 83rd minute for Jakub Błaszczykowski and was sent–off after receiving a second yellow card; Dortmund went through to the final via a penalty shoot-out.[11]
Bayer Leverkusen
On 28 August 2015, Kampl returned to Bayer Leverkusen on a five-year deal.[12] He made his debut on 12 September 2015 versus SV Darmstadt 98. On 26 September, Kampl scored his first goal for Leverkusen in a 3–0 away win against Werder Bremen. Later, on 20 October, he scored his first UEFA Champions League goal in a 4–4 home group stage draw against Roma.
RB Leipzig
On 31 August 2017, Kampl joined RB Leipzig on a four-year contract for a transfer fee of €20 million.[13] He made his debut for the club on 8 September 2017, setting up Timo Werner's second goal in a 2–0 win away at Hamburger SV.[14] Five days later, he was part of the club's first ever starting eleven in the UEFA Champions League, a 1–1 draw with AS Monaco.[14]
On 20 September 2018, Kampl captained Leipzig for the first time in a UEFA Europa League match against his former club Salzburg.[14]
On 19 October 2023, Kampl extended his contract with RB Leipzig until June 2026.[14][15]
International career
Kampl made his senior debut for Slovenia on 12 October 2012, starting in a 2–0 away win against Cyprus.[16] He scored his first goal on 6 September 2013 against Albania, which Slovenia won 1–0.[17] Kampl scored his second goal in a UEFA Euro 2016 qualifying match against San Marino, the second of their 6–0 win. In October 2016, the Slovenian squad released a statement "condemning Kampl's absence from both games."[18] In response, Kampl stated "Firstly, I always play with pride and happiness for Slovenia and I intend to do so in the future, and secondly, I have made it clear I will be available next time, I just need some rest now."[18]
Kampl retired from the national team in late 2018 for personal reasons.[19][20] He earned 28 caps and scored 2 goals.[16]