Chesterfield doubled their lead from the penalty spot when Ian Evatt was adjudged to have been bundled over by Deane Smalley, and Roberts tucked away the resulting kick from 12 yards as the U's looked shell-shocked.
United's response before the break was unspectacular as they failed to register a single shot at goal before half time.
Oxford's quest to get back into the game was effectively ended when first Tom Newey was sent off for a bad foul on Banks and, moments later, Michael Raynes was dismissed for a second bookable offence to leave the visitors finishing the game with nine men.
Roberts compounded their opponents' misery with a third goal in stoppage time.
Chesterfield held on for the points, which keep them top of League Two and a point clear of second-placed Scunthorpe.