Hij tekende voor het seizoen 2009/10 een driejarig contract bij Portsmouth FC[1].
Mokoena's carrière in het betaald voetbal begon in 1996 bij Jomo Cosmos in Zuid-Afrika. In 1998 trok hij via Bayer 04 Leverkusen naar Europa. Zo kwam hij in november 1998 bij AFC Ajax terecht. Mokoena speelde in Amsterdam een aantal keer in de hoofdmacht, maar kwam voornamelijk op huurbasis uit voor Germinal Beerschot. Daarna vertrok hij definitief naar het eveneens Belgische Racing Genk. Hier speelde Mokoena zich in de aandacht van Blackburn Rovers, dat hem voor £300.000,- overnam en hem tot en met het seizoen 2008/09 in dienst had[2]. Zijn harde tackles bij de Engelse club leverde hem daar de bijnaam Axe ('Bijl') op. In 2009 tekende hij een driejarig contract bij Portsmouth FC, dat hem transfervrij inlijfde. Met Portsmouth stond hij op 15 mei2010 in de finale van de strijd om de FA Cup. Daarin verloor de ploeg van trainer-coach Avram Grant met 1-0 van Chelsea door een treffer in de 59ste minuut van Didier Drogba. Drie jaar later keerde hij terug naar Zuid-Afrika, waar hij voor Bidvest Wits tekende.
Hij debuteerde in februari 1999 als Zuid-Afrikaans international. Mokoena debuteerde in februari 1999 als Zuid-Afrikaans international en speelde sindsdien meer dan honderd interlands. Daarmee werd hij zowel recordinternational van Zuid-Afrika als de jongste speler in het nationale team ooit[3]. Hij speelde als aanvoerder alle drie de wedstrijden van Zuid-Afrika op het WK 2010.