Nathan Hughes scored his first Test try and Semesa Rokoduguni also crossed for England before Nicolas Sanchez went over late on for the Pumas in an error-strewn match.
England's pack won the battle up front, with prop Mako Vunipola named man-of-the-match.
"Look it was a grindathon, wasn't it?," said England coach Eddie Jones. "They played well.
"We were off the pace a little bit," the Australian added after what was England's first match since the British and Irish Lions drawn series in New Zealand
"The reality is we haven't played a game since March together," Jones said.
"Our fluency and our understanding wasn't there, which is understandable.
"I thought it was a good win. At the 78th minute, 21-3 against a team that at the 60-minute mark that was leading the All Blacks, so you can't underestimate them."
This was England's fourth successive victory against Argentina in just over a year, including a 2-0 series triumph in Argentina in June.
But England will surely need to go up a gear if they are to beat Australia at Twickenham a week on Saturday.
"Ball in hand, I think we need to get into the right areas of the field and then treasure the ball," England captain Dylan Hartley told Sky Sports.
For the Pumas, defeat continued a miserable 2017 that has seen them record just one victory in 10 Tests - against Georgia in June.
"There were a few opportunities for both teams but England were able to take advantage," said Argentina coach Daniel Hourcade.
"They played a very tight game and in that game the team that is more efficient wins and they were more efficient than us," Hourcade added.
England started with Henry Slade at inside centre and Sam Underhill in the pack as Jones rested the Lions duo of Owen Farrell and Maro Itoje.
Ford, taking over kicking duties from the absent Farrell, hit the post with an early penalty effort from distance but was twice on target from closer range either side of Emiliano Boffelli's eighth-minute effort for the Pumas.
A key moment in the game came in the 22nd minute when Argentina wing Joaquin Tuculet was sin-binned for taking out England fullback Mike Brown in mid-air as the pair contested a high ball.
Brown - who has a history of concussion injuries - was replaced by Rokoduguni after landing awkwardly on his head.
England scored their first try soon afterwards when Ford's excellent cut-out pass found No 8 Hughes wide on the right, with the back-row charging over from close range.
Ford could not convert but England led 11-3.
Argentina flyhalf Juan Martin Hernandez, preferred to Nicolas Sanchez by Hourcade, had chances to close the gap shortly before the half-hour mark but missed two kickable penalties - the veteran playmaker's second attempt pulled horribly wide across the face of the posts from out right on the 22.
Instead, it was England who scored next.
Ford's clever chip ahead was regathered by halfback partner Ben Youngs, who in turn passed to Slade only for the centre to be tackled without the ball.
Ford landed the resulting penalty six minutes before half-time.
England threatened on the counter-attack after the break but passes from Slade and Anthony Watson went astray at a rainswept Twickenham.
Argentina were unable to make the most of their possession, Boffelli and replacement Sanchez both missed penalties while solid England defence at a maul denied them a try.
England extended their lead thanks a try 14 minutes from time.
Replacement back Alex Lozowski surged into Argentina's 22 and, after the ball was recycled, Slade's long pass put Rokoduguni in at the right corner for a try eventually awarded by referee Marius van der Westhuizen after checking for a forward pass.
Ford kicked a tough conversion but Argentina had the last word two minutes from time when Sanchez crowned a 30-phase move with a try.
But it was too little too late for the Pumas, and Sanchez's conversion attempt rebounded off the post.
Penalty: Emiliano Boffelli