The 25-year-old scored all of his side's 16 points, registering a try, a conversion and three penalties to drag his side level after they found themselves 16-6 down midway through the second half.
Argentina have not beaten South Africa in any of their 14 previous Tests, with their most recent reverse coming in last week's opening Rugby Championship match at Newlands.
The Springbok made two changes from that side as Adriaan Strauss replaced the injured Bismarck du Plessis at hooker, while Jacques Potgieter was promoted from the bench to start at blindside flanker, with Keegan Daniel making way.
The home side brought in Nicolas Sanchez at number 10 with Juan Martin Hernandez injured, while Rodriguez came in for Lucas Gonzalez Amorosino.
Argentina dominated the first half and entered the break 13-3 ahead thanks to a Santiago Fernandez try and the boot of Martin Rodriguez, who converted two penalties and a conversion.
South Africa could have taken the lead after three minutes after the visitors were penalised for being off their feet at a ruck, but Steyn missed from 47 yards.
The away side were first on the board as Rodriguez converted a penalty after Jannie du Plessis was penalised for an infringement at a maul.
And Argentina extended their lead after 17 minutes when Juan Figallo passed to Santiago Fernandez, who touched down underneath the posts with the extras added by Rodriguez.
Rodriguez could have put his side 13 points ahead after Bryan Habana was pulled up for handling while on the ground, but the full-back could not convert.
The visitors finally got on the scoreboard seven minutes before the break after the Pumas were again penalised at the ruck, with Steyn this time making no mistake.
However Rodriguez ensured his side went into the break 10 points clear, converting a penalty after 36 minutes.
Out-muscled and outplayed in the first 40 minutes, South Africa needed to strike first and were thankful that nine minutes after the restart Steyn took advantage of Rodrigo Roncero's infringement at the ruck to bring the score back to 13-6.
However indiscipline again from South Africa, this time from replacement Flip van der Merwe, gave Rodriguez the opportunity to add to the Pumas' tally and the 27-year-old made no mistake.
Steyn kept his side in the match as once again the teams exchanged three-pointers.
South Africa turned the screw and with 15 minutes left scored their first try of the match.
Steyn charged down a Marcelo Bosch clearance and touched down, with his conversion levelling the scores.
They could have won it but Morne Steyn missed a penalty with six minutes left as the Springboks left with their unbeaten record intact.