City had led through Jonathan Stead’s 15th minute strike but Jobi McAnuff levelled and Noel Hunt had Reading in front just before half-time.
Long then grabbed a second-half brace to secure the points that keep Reading seventh, now only one point off the play-off places.
The Royals started proceedings with a shot from Turkish playmaker Jem Karacan which Damion Stewart did well to block.
City defender Christian Ribiero made a barnstorming run down the right wing but his drilled cross failed to meet a teammate.
The Robins kept up the pressure as Brett Pitman shot with power only to see his shot blocked by defender Alex Pearce.
City made the breakthrough when Steven Caulker found acres of space behind the home defence. The defender got to the ball before Adam Federici and attempted a clever lob.
The ball bounced back off the crossbar allowing Stead to head in and earn a deserved lead.
Marvin Elliott clattered Long and was shown a yellow card for his troubles, but McAnuff’s long-range freekick ended up with the away fans.
The hosts began to rally with Hunt and Long combining to set up Jem Karacan but David James swept up the ball just in time.
Reading’s improvement finally paid off as Jimmy Kebe whipped in a cross from the right wing for McAnuff to score at the second attempt, his header beating James only to come back off the right post for him to rebound high into the net.
Brett Pitman responded immediately, taking a deft touch inside Andy Griffin and curling in a powerful shot that Federici could only tip over the bar.
Midfielder Cole Skuse was lucky to stay on the pitch after flying feet first into Karacan as City’s physical approach continued.
Hunt ensured that the Royals went in at half-time the happier side after excellent work from Long. The Irish winger bustled his way into a gap behind Adomah and crossed for Hunt to tap into an empty net.
The Royals came out of the blocks on the restart, Long causing problems for the Robins defence. Caulker brought the Irishman down on the edge of the area but McAnuff sent the resulting free-kick over the bar.
Long’s persistence paid off as he took advantage of a through ball from Alex Pearce, engineered a one-on-one with James and calmly slotted the ball into the left corner to make it 3-1 after 66 minutes.
Kebe dinked a superb ball into the box but James was able to gain possession before the onrushing Long and McAnuff.
The hosts dominated most of the second half as they took advantage of space created by a City side desperate for an equaliser.
The victory was sewn up as the unplayable Long seized on a pass from Hal Robson-Kanu and fired his second goal past a hapless James with a minute to go.