| Group A | P | W | D | L | GF | GA | GD | Pts |
|---|---|---|---|---|---|---|---|---|
| Swaziland | 3 | 2 | 1 | 0 | 7 | 2 | 5 | 7 |
| Zimbabwe | 3 | 1 | 2 | 0 | 7 | 2 | 5 | 5 |
| Madagascar | 3 | 1 | 1 | 1 | 1 | 1 | 0 | 4 |
| Seychelles | 3 | 0 | 0 | 3 | 0 | 10 | -10 | 0 |
Seychelles were eliminated after losing their first two games.
| Group B | P | W | D | L | GF | GA | GD | Pts |
|---|---|---|---|---|---|---|---|---|
| Lesotho | 3 | 3 | 0 | 0 | 6 | 0 | 6 | 9 |
| Malawi | 3 | 2 | 0 | 1 | 4 | 1 | 3 | 6 |
| Mauritius | 3 | 1 | 0 | 2 | 2 | 4 | -2 | 3 |
| Angola | 3 | 0 | 0 | 3 | 0 | 7 | -7 | 0 |
Mauritious and Angloa were both eliminated after losing their first two games.
Plate Semi-finals | ||||||
|---|---|---|---|---|---|---|
| 21 Jun 2016 | Lesotho | 2:3 | Zambia | |||
| 21 Jun 2016 | Namibia | 3:0 | Mozambique | |||
The losing quarter-finalists go in for a separate "Plate" mini-tournament. | ||||||
Plate Final | ||||||
| 24 Jun 2016 | Namibia | 1:0 | Zambia | |||
Quarter-finals | ||||||
| 18 Jun 2016 | Namibia | 1:1 (4:5) | Botswana | |||
| 18 Jun 2016 | South Africa | 1:1 (4:2) | Lesotho | |||
| 19 Jun 2016 | Congo DR | 1:0 | Mozambique | |||
| 19 Jun 2016 | Zambia | 0:0 (2:4) | Swaziland | |||
Semi-finals | ||||||
| 28 Apr 2007 | Madagascar | 0:1 | Zimbabwe | |||
| 28 Apr 2007 | Mozambique | 2:0 | Seychelles | |||
| 22 Jun 2016 | Botswana | 0:0 (5:4) | Congo DR | |||
| 22 Jun 2016 | South Africa | 5:1 | Swaziland | |||
3rd place | ||||||
| 25 Jun 2016 | Swaziland | 1:0 | Congo DR | |||
Final | ||||||
| 25 Jun 2016 | South Africa | 3:2 | Botswana | |||
South Africa claimed their fourth COSAFA Cup title | ||||||