Carlington Nyadombo's last-gasp penalty condemned Manchester City to its second consecutive defeat of preseason after a 2-1 loss in Durban against Amazulu.
Nyadombo calmy slotted in from 12 yards after Abdul Razak had hauled down Marc van Heerden to give the hosts a famous victory on the 95th birthday of national hero Nelson Mandela.
James Milner had fired City level on 26 minutes after Bongani Ndulula had given the South Africans a shock lead seven minutes earlier but the Premier League giant looked well below-par throughout.
New manager Manuel Pellegrini missed the match as he travelled back to Chile for family reasons, leaving assistant boss Brian Kidd in charge of team affairs.
City made four changes to the side which lost to Supersport United on Monday, with Matija Nastasic, Yaya Toure, Milner and Scott Sinclair all earning their first starts.
In an opening high on energy but low on quality, Samir Nasri was the first to threaten, curling a free kick over the Amazulu wall from 25 yards and forcing Tapuwa Kapini into a good save.
Aleksandar Kolarov was causing the South Africans problems with his forward runs and, on 15 minutes, Kapini had to venture out and claim the ball from him.
But, four minutes later, the Serb made a horrendous and costly mistake, playing a back-pass straight into the path of Ndulula, who gleefully rounded Joe Hart and tapped home.
Stung by the setback, City pushed forwards and, despite a lack of any real invention, found itself back on terms in the 26th minute.
Sinclair's hanging cross found Toure unmarked in the area and, despite the Ivorian mistiming his jump, the ball fell to Milner at the back post and the England international smashed in first time.
City made three changes at halftime, introducing Pablo Zabaleta, Javi Garcia and Jack Rodwell, but the new faces failed to inject any real urgency into their play.
On the hour Kolarov surged forward again, getting to the byeline and finding Dzeko low at the near post, but the Bosnian's effort was beaten away by Mathibe.
Clear chances were few and far between but Sinclair should have done better than to drag his shot wide when cleverly slipped through by substitute Alex Nimely 10 minutes from time.
And Sinclair curled wide again before City, inexplicably, snatched defeat from the jaws of a draw late on. Razak brought down Van Heerden, and Nyadombo easily beat replacement goalkeeper Costel Pantilimon.
Follow GOAL.COM on Twitter
- Sports & Recreation
- James Milner
- Scott Sinclair
- Manuel Pellegrini
- Aleksandar Kolarov
- Bongani Ndulula