Born in Kasama, Kangwa has played club football in Zambia for Nkana.[2] He scored two league goals during the 2010 season,[3] and one league goal during the 2011 season.[4] In December 2012, it was announced that Kangwa would join English club Watford on trial in January 2013.[5]
On 3 July 2014 he was loaned to Israeli club Hapoel Ra'anana[6] He made his league debut for the club on 13 September 2014 in a 4–0 home victory over Hapoel Petah Tikva. He was replaced by Mamadou Touré Thiam in the 60th minute.[7] He scored his first league goal for the club on 25 October 2014 in a 2–0 away win against Maccabi Haifa. His goal, the first of the match, came in the 13th minute.[8]
On 1 August 2016, Kangwa transferred to Turkish Süper Lig club Gaziantepspor on a free transfer.[9] His league debut came on 21 August 2016 in a 2–0 away defeat to Gençlerbirliği. He was replaced by Alpay Koçaklı in the 58th minute.[10] His first league goal for the club came as a brace against Bursaspor on 1 October 2016. The match ended 3–2 in favor of Gaziantepspor. Kangwa started the game off with an assist on Nabil Ghilas's 31st-minute goal. He scored his first of the game in the 60th minute, with an assist from Bart van Hintum. He rounded the day off with a 79th-minute goal, assisted by substitute Daniel Larsson, that sealed the victory for his side that day.[11]
On 26 August 2017, he moved to the Russian Premier League, signing with FC Arsenal Tula.[12] He made his league debut for the club on 29 September 2017 in a 1–0 home victory over FC Krasnodar.[13] He scored his first goal in the Russian Premier League on 15 October 2017 in a 1–0 away win against Zenit. His goal, assisted by Kirill Kombarov, came in the 73rd minute.[14]
On 19 June 2021, he extended his contract with Arsenal Tula for two more seasons.[15] Kangwa left Arsenal on 28 January 2023.[16]