Argentina led for much of the encounter after tries from flanker Juan Manuel Leguizamon and centre Marcelo Bosch, but indiscipline in the final 10 minutes allowed South Africa to edge ahead and hold on for victory.
“We’ve got mixed feelings … We took a step forward with regard to last weekend since we radically changed our image and attitude,” Leguizamon told reporters.
“But we lacked something to have won the match … We needed to be a bit more disciplined with regard to the penalties.”
Bosch said: “We’re left with a bit of a sour taste, feeling we could have won it, but I think the team today still can feel successful for what they gave on the pitch.”
Wing Bjorn Basson scored the visitors’ only try, with Steyn kicking the rest of their points to take them to the top of the four-nation tournament’s standings on points difference from title holders New Zealand.
The Springboks and All Blacks have nine points after two rounds, with Argentina on a single point and Australia yet to break their duck after two defeats against New Zealand.
“I’m not at all surprised by what the Pumas did, they played very well, with a lot of passion playing typical Argentine rugby,” South Africa’s coach Heyneke Meyer said.
It was South Africa’s first away victory in the southern hemisphere’s elite competition since beating New Zealand in Hamilton in 2009.
South Africa, who were held to a 16-16 draw by Argentina in the same fixture in Mendoza last year, had expected a response from the Pumas after their abject display seven days ago.
But while the home side showed more physicality and passion, South Africa were nowhere near as slick as they made numerous handling errors.
Leguizamon barged his way over for the opening try inside four minutes as the Pumas made all the early running.
Steyn and Pumas captain Felipe Contepomi traded penalties after that, before the Springboks hit back to level the score at 10-10, Basson crossing the line unopposed after the visitors spread the ball wide.
Argentina continued to impress with their enterprise and had their second try three minutes before halftime when good play from wing Gonzalo Camacho got them close to the Springbok line and outside centre Bosch crashed over, with Contepomi adding his second conversion.
Steyn added a second penalty, but the Springboks still trailed 17-13 at halftime.
The match threatened to boil over in the second period as first Springbok flanker Francois Louw accused an opponent of eye-gouging, before lock Eben Etzebeth claimed he was bitten.
There was no immediate visual evidence of either incident.
Steyn closed the gap to a point with another penalty five minutes after halftime and his team edged ahead with eight minutes to play after the Pumas were penalised for collapsing a maul.
The Springboks managed to play the remainder of the match in the Argentina half and were rewarded with another penalty when the Pumas again collapsed a maul for Steyn to convert his fifth penalty.
(Reporting by Nick Said in Cape Town; Additional reporting by Rex Gowar)