The match looked as though it would be headed for the lottery of a penalty shoot-out with the teams locked at 1-1, but Young Chipolopolo found a winner in injury-time to seal their third win in a row in this competition.
Angola deservedly took the lead on 32 minutes when Paciencia Cristovao headed a looping effort into the net as Zambia battled to get out of first gear in the game.
Adriano forced a fine save from Zambian goalkeeper Moses Mapulanga late on as he showed good feet to get his shot away from the edge of the area, but minutes later it was the Zambians who scored.
Kampamba showed calmness under pressure to provide a perfect lob over Angolan keeper Francisco Lirio in the 91st minute and hand the trophy back to the jubilant Young Chipolopolo.
Meanwhile, hosts Botswana collected the bronze medal when they beat Malawi 1-0 in a hard-fought clash that ended with the Young Flames reduced to 10 men.
Botswana have shown themselves to have resilience in defense in this tournament – the only two goals they have conceded in four games in the competition came in the semifinal defeat to Zambia.
They were solid at the back against Malawi again, bar some early nervous moments, and managed to nick an all-important goal themselves on 38 minutes.
Ogomoditswe Baoleni smashed the ball home after an attack that originated from the right. Malawian goalkeeper Carlington Msomali punched a cross straight into the path of the striker and he made no mistake with his finish.
Dalisto Sailesi really should have brought Malawi level in the second period, but missed an excellent chance after being set up by the lively Tony Chitsulo.
Malawi's Kondwani Lufeyo received his marching orders four minutes into injury-time after a bad tackle on Tshwanelo Mojanaga, and the Young Flames are unable to force an equaliser to send the game to a shoot-out.
Time: 09:00 GMT
BOTSWANA 1 (38' Ogomoditswe Baoleni)
Malawi: Carlington Msomali, Stanley Sanudi, Bongani Kaipa, Peter Msemela, Kodwani Lufeyo, Yamikani Chester, Willie Saenda (74' Martin Masoatheka), Dalisto Sailesi, Mike Kaziputa (63' Tony Chitsulo), Maxwell Mwanyongo, Victor Mpingajira.
Botswana: Neo Kenalemang, Tshepo Baipoledi, Entle Bakwena, Mpho Kgaswane (65' Kabelo Seakanyeng), Ogomoditswe Baoleni, Eric Molefi, Moshe Gaolaolwe, Mathews Moruti, Unobatsha Mbaiwa, Buyani Kgomotso, Kago Segokgo.
Booked: 82' Dalisto Sailesi, 89' Entle Bakwena (Botswana)
Dismissed: 90+4' Kondwani Lufeyo (Malawi)
Referee: Lwandile Mfiki (South Africa)
Assistants: Mbingo Petrus (Swaziland) / Phatsoane Souro (Lesotho)
Fourth official: Thabani Bamala (Zimbabwe)
Match commissioner: Katongo Kabungo (Zambia).
Time: 13:00 GMT
ANGOLA 1 (33' Paciencia Cristovao)
ZAMBIA 2 (66' Evans Kangwa, 90+1' Ronald Kampamba)
Angola: Cruz Adilson, Francisco Lirio, Paciencia Cristovao, Nsiandamba Vidal, Afonso Eddie (63' Viera Garcia), Pascoal Joel, Panzo Elidio (c), Nicolu Adriano, Domingos Mateus, Macuma Ruterio, Almedia Valdemar.
Zambia: Moses Mapulanga, Chishimba Changala, Moses Siansumo (c), Alex Sichone, Amos Simwanza, Kizito Cheelo (90+4' Musesha Phiri), Shadreck Malambo, Shadreck Mayembe (50' Julius Situmbeko), Evans Kangwa, Ronald Kampamba, Bruce Musakanya.
Booked: 32' Moses Siansumo (Zambia)
Referee: Kanoso Abdul (Madagascar)
Assistants: Marengula Arsenio (Mozambique) / Shaanika David (Namibia)
Fourth official: Joshua Bondo
Match commissioner: Dintle Mphele (Botswana).
10/12/2011 (13:00 GMT) - Angola vs. Zambia 1-2
3rd / 4th Play-Off
10/12/2011 (09:00 GMT) - Malawi vs. Botswana 0-1
08/12/2011 (12:00 GMT) - Malawi vs. Angola 2-4
08/12/2011 (14:30 GMT) - Botswana vs. Zambia 0-2
01/12/2011 (14:00 GMT) - Botswana vs. Mozambique 0-0
04/12/2011 (15:30 GMT) - Swaziland vs. Mozambique 1-3
06/12/2011 (14:30 GMT) - Swaziland vs. Botswana 0-3
- Botswana 4 pnts (GD: +3)
- Mozambique 4 (+2)
- Swaziland 0
01/12/2011 (16:30 GMT) - Seychelles vs. Malawi 0-2
04/12/2011 (13:00 GMT) - Malawi vs. Lesotho 3-2
05/12/2011 (15:30 GMT) - Lesotho vs. Seychelles 3-1
- Malawi 6 pnts
- Lesotho 3
- Seychelles 0
02/12/2011 (13:00 GMT) - South Africa vs. Mauritius 4-0
02/12/2011 (15:30 GMT) - Zambia vs. Tanzania 3-3
04/12/2011 (14:00 GMT) - Tanzania vs. South Africa 1-1
04/12/2011 (16:30 GMT) - Mauritius vs. Zambia 0-4
06/12/2011 (12:00 GMT) - South Africa vs. Zambia 1-5
06/12/2011 (12:00 GMT) - Tanzania vs. Mauritius 3-0
- Zambia 7 pnts
- Tanzania 5
- South Africa 4
- Mauritius 0
02/12/2011 (13:00 GMT) - Angola vs. Madagascar 1-0
02/12/2011 (15:00 GMT) - Namibia vs. Zimbabwe 1-1
05/12/2011 (13:00 GMT) - Zimbabwe vs. Angola 2-3
05/12/2011 (18:00 GMT) - Madagascar vs. Namibia 1-3
06/12/2011 (17:00 GMT) - Madagascar vs. Zimbabwe 5-5
06/12/2011 (17:00 GMT) - Namibia vs. Angola 3-4
- Angola 9 pnts
- Namibia 4
- Zimbabwe 2
- Madagascar 1