But after missing plenty of chances to build on their advantage, they saw their lead cancelled out by the Barcelona defender. Katlego Mphela could have snatched victory at the death, but his strike found the base of the post as both sides had to settle for a share of the spoils. After an entertaining opening ceremony in Johannesburg, Bafana Bafana failed to make the most of their advantage, much to the disappointment of the 85,000 crowd.
The visitors almost stunned their hosts inside the first 120 seconds, but were thwarted by a last-ditch block by Aaron Mokoena. It came after Paul Aguilar's cross from the right was not convincingly cleared by Itumeleng Khune and Giovani dos Santos' shot was repelled by the South Africa captain with an empty net gaping. Steven Pienaar sent South Africa's only real early chance - a 25-yard free-kick - disappointingly over, while Efrain Juarez became the first player to be booked at the World Cup for trying to slow down play.
Dos Santos again came close when a quick counter-attack resulted in the Galatasaray forward striking a rising shot narrowly wide. There was a slightly nervy moment for Mexico after 22 minutes when Oscar Perez fumbled and then regathered Pienaar's cross. Fortunately for the goalkeeper, there were no attacking players close enough to capitalise.
Khune continued to be kept busy and did well to keep out Guillermo Franco after the former West Ham striker controlled well in the area only to see his shot blocked. Bongani Khumalo then diverted another Dos Santos shot away for a corner, before there was a lucky off-side escape when Khune flapped at a corner - but came so far he played Carlos Vela offside as the Arsenal forward latched on to a flick-on and tapped in.
The home side finally came out of their shell in the closing moments of the half - Mphela failing to connect with Tshabalala's well-floated cross and Kagisho Dikgacoi heading a corner wide. Lucas Thwala, who was stretched down the left in the opening 45 minutes, was replaced by Tsepo Masilela at half time as Carlos Alberto Parreira looked to shore up in defence. But it was in attack where they prospered, taking the lead through a fine Tshabalala effort after 55 minutes.
The Kaizer Chiefs midfielder was put through on the left by an excellent ball from Teko Modise and unleashed a powerful cross-goal shot that gave Perez no chance. Mexican coach Javier Aguirre responded by throwing on Andres Guardado for Aguilar.
It was Dos Santos, though, who continued to torment the home defence and he again drew a fine save from Khune with a strike from the right that was turned away for a corner. The home side were clearly lifted by the goal and Modise should have doubled the advantage after the hour mark when Mphela's shot was deflected into his path six yards out - but he struck his effort wide.
Veteran Cuauhtemoc Blanco was thrown into the mix in place of Vela, but again it was the home side through Modise who engineered a good chance. However, he took too long to pull the trigger and Francisco Rodriguez cleared away the danger. Javier Hernandez also entered the fray but it was another substitute that set up the equaliser - Guardado's cross from the left looping over the head of Mokoena and Marquez took a touch before firing in.
Mphela showed good pace minutes from time when he outpaced Rodriguez, but his shot could not beat the post.