Beckham was taken to hospital for x-rays after being substituted in the 50th minute following an awkward fall in the first half of a game being used by the South Africans to showcase their 2010 World Cup bid.
Striker Heskey scored the winner, tapping in a rebound after goalkeeper Brian Baloyi spilled a shot from substitute Frank Lampard in the 64th minute. Gareth Southgate had given England an early lead before Benni McCarthy equalised.
England coach Sven Goran-Eriksson was not unduly concerned by Beckham's injury, later diagnosed as a broken bone in his hand, and confirmed that the Manchester United player would return home with the rest of the squad.
Beckham is suspended for the home Euro 2004 qualifier against Slovakia on June 11 and is not scheduled to play again until the start of the domestic season in August.
Eriksson preferred to concentrate on a positive result -- and no further casualties.
"In the first half maybe we didn't get close enough to our opponents, but we fixed that in the second half and deserved to win," he said. "What we want is 25 fit players until June 11."
England went in front after only 36
Another Beckham free kick caused mayhem minutes later when Baloyi again failed to hold the ball, but the keeper reacted quickly to deny Michael Owen's follow-up.
South Africa levelled in the 18th minute when striker Benni McCarthy struck home a penalty following a handball by England right back Danny Mills.
"We played well," Owen told Sky Sports afterwards. "We couldn't really train properly, training at the wrong hours really. Considering all that went before I thought it was good performance."
Goalscorer Southgate said the win would boost morale before England's European championship qualifier against Slovakia.
"It's important for the spirit of the team," he said. "It was a great experience. "We might have to come and play a World Cup here."
England's visit was given blanket coverage by South Africa's media and on Wednesday former president Nelson Mandela asked Beckham to support his country's bid for the 2010 World Cup.
South Africa, who face rival bids from five other African countries, narrowly lost the vote to host the 2006 finals.