Roberts, who arrived at the Madejski Stadium from Blackburn on Thursday, bundled home the rebound after James blocked his second-half spot-kick to put the Royals on course for three important Championship points.
City defender Louis Carey saw red for the visitors after bringing the forward down in the area to hand Roberts the chance from the spot.
Albert Adomah struck a post for the guests in the aftermath of Roberts' strike, but that was as close as City came to getting themselves back into the match.
Jobi McAnuff also missed a late penalty to put gloss on the victory after Tomasz Cywka was felled in the box, while Reading missed a hatful of chances in front of goal over the 90 minutes, with Jem Karacan, Noel Hunt and Michail Antonio all at fault.
Home keeper Adam Federici did well to deny Chris Wood and Stephen Pearson, and eventually it was left to Roberts to grab the headlines on his first appearance for his new club.
City started brightly and Federici had to be alert to tip Wood's header over the bar in the fourth minute.
The Aussie stopper was in action moments later, throwing himself low to his right to prevent Pearson's bobbling effort from creeping in.
Reading soon rallied and McAnuff and Michail Antonio both saw attempts fail to test James.
As the hosts found their feet, Noel Hunt picked out Antonio with a superb pass only for James to deny the winger, while Roberts' follow-up was blocked by Pearson.
McAnuff should have done better than head Hunt's cross high and wide when well placed, before Hunt himself spurned a glorious opportunity when he failed to guide Antonio's whipped centre past James.
The visitors seemed to be hanging on, but out of nowhere they almost clawed their way in front. Adomah produced a sensational overhead kick, which appeared to be heading for the back of the net, but Federici made the stop.
Roberts was impressive throughout his and came close to a goal after 35 minutes. McAnuff's cross found the former Blackburn frontman but his flick drifted wide.
For all their chances, Reading still found themselves level at the break as Kaspars Gorkss sent a fizzing 25-yard volley narrowly over the bar and Jem Karacan followed suit moments before the interval.
City replicated their good start to the first half when the sides re-emerged for the second, and Wood nodded Yannick Bolasie's cross straight at Federici from five yards out two minutes after the break.
However, Reading jumped into the driving seat after 58 minutes. Roberts seized onto a ball in the box and induced the foul from Carey.
Carey was dismissed by referee Patrick Miller and, although Roberts' poor spot-kick was saved by James, the striker was on hand to dispatch the rebound.
The home side were quick to turn the screw after taking the lead.
Antonio volleyed over and Roberts shot wide on the turn as the Berkshire outfit piled on the pressure.
On the counter, however, the away side were inches away from an equaliser. Adomah's side-footed effort had Federici beaten only for the shot to cannon back off a post.
McAnuff had two further chances to put Reading out of sight before the Royals skipper saw his 89th-minute spot-kick pushed away by James.