Long grabbed two first-half goals for Brian McDermott's side to see off Pompey - who had Ricardo Rocha sent off before the break at the Madejski Stadium.
Steve Cotterill's side had created some fine early chances but never recovered from Long's brace and despite a spirited display could not reply.
Former Royals favourite Dave Kitson had a great early chance for Portsmouth when he got on the end of a Liam Lawrence cross but the striker could only flick his header wide.
Jem Karacan whipped a low cross across the face of goal at the other end in a lively opening before the visitors should have taken the lead.
Dave Nugent beat the offside trap to run onto a ball over the top and charged through on goal.
England Under-21 international goalkeeper Alex McCarthy pulled off a stop to keep out his low shot and then made a superb save to tip over the follow-up from Kitson who looked certain to score.
It proved vital too as the hosts took the lead moments later in the 30th minute.
Pompey had a corner which was headed clear for Jimmy Kebe to burst away on the break down the left wing.
He cut inside before picking out Karacan bursting up the middle. The midfielder then played in Long just outside the area and the Republic of Ireland man kept his cool to blast home his 21st goal of the season.
And Long doubled the lead seven minutes later to take his tally for the club to 51.
Brian Howard released Long over the top with a chipped pass and as he burst into the area the striker went down under a challenge from Rocha who was shown a straight red card by referee Kevin Friend.
Long stepped up confidently to beat Jamie Ashdown from the spot and put the hosts in control.
Lawrence almost stole in at the end of a long ball in the dying seconds of the half but could not bring it down as Reading went in on top.
Pompey found a way of stopping Long early in the second period as he went down under a heavy challenge and required several minutes of treatment.
He was fit to continue but Kitson was the next to threaten with another header which flew over the top.
The impressive Howard thought he had killed the game off when he buried a loose ball after Ashdown had saved from Long - but referee Friend ruled the goal out for handball.
Long combined with Howard again to bring out a save from Ashdown before a late scramble in the goalmouth was cleared by McCarthy to ensure a clean sheet.