Ten-man Zambia become just the second country, after South Africa, to lift the trophy on two occasions after they also won the gold medal in 2017.
It was a deserved victory for a side who scored 20 goals in their five games, an average of four per match, as they proved the most complete on the squads on display.
After a goalless first half in which Zambia were largely dominant, they took the lead on 52 minutes.
Peter Chikola overlapped on the far side after a quick one-two with Joseph Banda. Julius Kumwenda laid the ball off for Banda on the edge of the box, who curled it into the far corner of the net.
Zambia were reduced to 10 players six minutes later when Chikola picked up his second yellow card.
Ng’ambi made it 2-0 on 74 minutes though, as Mulenga beat two defenders and rounded the goalkeeper before laying it off for Ng’ambi to score the insurance goal.
Angola claimed the bronze medal with a comprehensive 5-0 win over Eswatini in the third-place play-off to go home with a medal for the second year running after they won gold in 2018.
Angola took the lead on 15 minutes as Andre Muhongo’s corner-kick was turned in by lanky striker Valdemiro Domingos.
Domingos got the second just before the half-hour mark when he drilled in a left-footed shot, before Muhongo collected a pass from Osvaldo to score with a low drive.
Domingos claimed his hat-trick on 68 minutes with another neat finish, before he grabbed a fourth late on after a one-two with Rivaldo.
The goals took Domingos to five for the tournament as he claimed the Man of the Match prize.
Zambian forward Moses Mulenga was named Player of the Tournament, while his compatriot Iford Mwale won the Golden Glove as best goalkeeper.
Simon Cipriano (Mozambique), Domingos (Angola) and Ng’ambi (Zambia) shared the Golden Boot with five strikes each.
Eswatini claimed the Fair Play prize.
Eswatini 0 Angola 5 (Domingos 15’, 29’, 68’, 84’, Muhongo 39’)
Mozambique 0 Zambia 2 (Banda 52’, Ng’ambi 74’)
Matches Played: 16
Goals scored: 50
Biggest victory: South Africa 0 Zambia 7 (Group A, October 14)
Most goals in a game: 7 – South Africa 0 Zambia 7 (Group A, October 14)
5 goals – Simon Cipriano (Mozambique), Valdemiro Domingos (Angola), Rickson Ng’ambi (Zambia)
4 – Moses Mulenga (Zambia)
2 – Joseph Banda (Zambia), Peter Chikola (Zambia), Francisco Chiquinho (Angola), Miguel Chirwa (Zambia), Andre Muhongo (Angola), Charles Mumba (Zambia), Dave Tobias (Malawi)
1 – Jose Antonio (Angola), Colani Dvuba (Eswatini), Rivaldo Fonseca (Angola), Julius Kumwenda (Zambia), Kamal Kifli (Comoros), Frank Mahowa (Malawi), Mpendulo Makhanya (Eswatini), Thabang Mahlangu (South Africa), Moqolisi Mothae (Lesotho), Lasmond Phiri (Zambia), Noel Sakala (Malawi), Chikumbutso Salima (Malawi), Taemane Shea (Lesotho), Chipyoka Songa (Zambia), Mike