Defender Jeffrey Ntuka scored the only goal of this drab Vodacom Challenge final played at Loftus Versfeld.
Sweswe was the standout performer, keeping new City signing Emmanuel Adebayor under lock and key all afternoon.
The first half was a dreary affair as the teams struggled to create meaningful chances.
The first real chance fell to bustling striker Nkosinathi Nhleko but goalkeeper Shay Given punched it out for a corner.
The resultant setpiece was met by Ntuka who punished slack marking in the box to fire a low shot into the net in the 44th minute.
City nearly hit back after the restart but defender Tal Ben Haim headed inches wide with the host defence in panic mode.
The visitors had a chance to level the scores in the second half but Adebayor blazed high after cutting through the Chiefs defence.
Nengomasha added to the tally of missed chances when he shot straight at Given on a one-on-one.
The megarich City brought in Brazilian star Robinho in the second stanza but he made little impact.
Chiefs survived a late onslaught from the visitors to hold on to a memorable victory.
Line ups:
KAIZER CHIEFS–
Itumeleng Khune, Tshifiwa Mmbooi (Lawrence Molekwane 61st), Zhaimo Jambo, Thabang Rooi (Nengomasha 57th), Thomas Sweswe, Jeffrey Ntuka, Tshepo Bulu, David Mathebula (capt), Nkosinathi Nhleko (Torrealba 75th), Mthokozisi Yende (Josta Dladla 46th) , George Lebese
MANCHESTER CITY
Shay Given, Javal Vidal, Wayne Bridge, Nedum Onuoha, Richard Dinne, Martin Petrov (Robinho 58th), Gareth Barry, Nigel De Jong, Sean Wright Philips, Craig Bellamy, Emmanuel Adebayor-CAJ News



Kaizer Chiefs----------(1) 1