The Orlando Pirates midfielder decided affairs with a stunning 78th minute strike as Bafana Bafana put in a markedly improved display from their embarrassing 3-1 loss to Mauritania in an AFCON qualifier on the weekend.
Victory also saw Bafana retain the Mandela Challenge for the first time since 2009, having defeated African champions Ivory Coast 2-0 in last year's edition of the competition.
Ephraim Mashaba - who has now bettered Clive Barker's mark with 23 wins as Bafana coach - made seven team changes following the defeat in Nouakchott.
'Shakes' brought in Clayton Daniels, Mzikayise Mashaba, Siyabonga Nhlapo, Makola, Bongani Zungu, Daylon Claasen and Sibusiso Vilakazi.
Injured centre-backs Erick Mathoho and Rivaldo Coetzee made way, along with Siyabonga Zulu, Dean Furman, Mandla Masango, Thulani Serero and Tokelo Rantie.
Mashaba's oufit were the better side in the first half, with Man of the Match Makola regularly trying his luck from range, while Pirates teammate Thamsanqa Gabuza provided a strong outlet up front at Orlando Stadium.
Gabuza nearly struck just before the interval but his powerful shot from close range was brilliantly pushed onto the crossbar and out by goalkeeper Khadim Ndiaye. Gabuza was released by a wonderful through-ball from Bidvest Wits attacker Vilakazi.
At the other end, Bafana captain Itumeleng Khune did well to keep out a curling free-kick from West Ham forward Diafra Sakho in the 36th minute.
The hosts came close to breaking the deadlock in the 54th minute, but Vilakazi's first-time shot in the box was superbly foiled by Lys Gomis, moments after he replaced Ndiaye.
Vilakazi had another chance to score 13 minutes later but he steered his attempt wide after being put through one-on-one by Andile Jali on the counter.
Makola, however, got the goal late on at his home ground to hand Bafana their maiden victory over the Teranga Lions - who pressed at the death - at the seventh attempt.
South Africa: Khune (c), Nhlapo, Ngcongca, Daniels, Mashaba, Makola, Jali, Zungu, Claasen (Shongwe 39'), Vilakazi (Serero 66'), Gabuza (Rantie 85').
Senegal: K. Ndiaye (Gomis 53'), Mbodji (c) (Koulibaly 65' ), A. Ndiaye, Cissokho, Konate (Souare 46'), Mane, Badji, Mbengue, Toure, Sakho (Sane 63'), Diagne.