The unconvincing display was greeted with a harsh reception by some 50,000 home supporters, many of whom turned their ire on Santos striker Neymar, who had a below-par game and was booed off after being substituted late on, while under-pressure coach Mano Menezes was also a target.
The hosts bossed possession in the first half but were unable to seriously test South Africa goalkeeper Itumeleng Khune.
The hosts' listless display continued after the break, prompting increased unrest from the Brazilian fans, many of whom are still upset by the national side's defeat to Mexico in the Olympic final.
Menezes looked to shake his side into life with a rash of substitutions after the break, sending on Hulk, Paulinho and Alex Sandro.
And the changes finally paid off in the 74th minute when Khune failed to hold on to a powerful David Luiz drive and Zenit St Petersburg new boy Hulk was on hand to tuck home the rebound.
South Africa went in search of an equaliser in what time remained but the visitors continued to remain bereft of ideas in front of goal, with the Brazilian backline never in real danger of being breached.
Match-winner Hulk conceded that the Selecao had not been at their best, but admitted his surprise at the reaction of the home crowd.
"Things didn't happen as we wanted," he said. "We expected more applause than whistles.
"I think the team's performance will start to improve in the next games.
"Meanwhile, we have to learn how to play under pressure. We all play in very important teams and that give us experience to do it."
Vasco da Gama's Dede, who came off the bench in the second half, added: "We all want another reaction from the people.
"Despite everything, we won today [Friday] and I'm surely will play better in the future."
This was the first of three friendlies Brazil will play at home between now and the end of the year.
They also face China in Recife next Tuesday night, before facing arch-rivals Argentina in Goiania in October.