Mikele Leigertwood volleyed in an Ian Harte free-kick nine minutes from time for the only goal of the game at the Madejski Stadium.
Forest, though, came close to snatching an equaliser in stoppage time but substitute Marcus Tudgay’s header was cleared off the line by Alex Pearce with the striker’s follow-up kept out by Australian goalkeeper Adam Federici.
Victory took the Royals, who’ve won 46 points from a possible 51 since January, back to the top flight for the first time since 2008, with the players swamped by joyful Reading fans who swarmed onto the pitch at the final whistle.
With only the top two sides guaranteed promotion, victory gave Championship leaders Reading an unbeatable eight point lead over third-placed West Ham, with only a maximum of six on offer to the Hammers from their final two regular season league games.
“It’s unbelievable, it puts the cherry on the cake,” an elated Federici told the BBC. “To see all the fans on the pitch is fantastic.
“We always believed and we knew what we could achieve as a group.”
Reading manager Brian McDermott, who suffered the agony of a playoff final defeat by Swansea last year, added: “I’m delighted. I couldn’t see too much good in losing that play-off final at Wembley final last year, but perhaps this is meant to be.
“I’m not even bothered about the Premier League tonight, I’m just concerned about the players and staff. It’s a night for the fans.”
One consolation for Forest was that results elsewhere meant they could not now be relegated.
Meanwhile, second-placed Southampton took a giant stride towards promotion with a 3-1 win away to Peterborough.
Jos Hooiveld headed the Saints into a fifth minute lead before, five minutes later, Billy Sharp doubled their advantage.
Sharp scored his second and Southampton’s third in the 57th minute before Peterborough’s Tommy Rowe pulled one back four minutes from time.
That left Saints on the brink of promotion as they now have a five-point lead over West Ham.
The Hammers remained third with a 1-1 draw away to strugglers Bristol City.
James Tomkins headed the Londoners into a 25th minute lead only for City to equalise four minutes later through Cole Skuse.
Had City won, they would have relegated both Portsmouth and Coventry.
Instead Portsmouth, Southampton’s bitter south coast rivals, gave themselves hope of avoiding the drop, until Saturday at least, with a 2-1 win at home to Crystal Palace.
Scott Allan fired Pompey, into a 32nd minute lead and, 10 minutes after half-time, Greg Halford made it 2-0 for Michael Appleton’s men.
Pompey, docked 10 points for entering administration, knew a draw with Palace would mean ensure relegation.
And Palace’s Darren Ambrose ensured a nervous finale at Fratton Park when he scored with a 71st minute penalty but the south Londoners could not equalise.
Australian defender Shane Lowry’s 66th minute header saw Millwall win 1-0 away to Coventry after visiting keeper Maik Taylor saved Gary McSheffrey’s penalty.
Portsmouth and Coventry are now five points from safety, but both clubs will be relegated if City beat Barnsley on Saturday.
Blackpool and Cardiff all but made sure of playoff spots with 1-0 and 2-0 wins over Leeds and Derby respectively.
Meanwhile Hull beat Barnsley, now safe from relegation, 3-1, Brighton drew 2-2 with Watford, Ipswich and playoff contenders Birmingham shared the points in a 1-1 draw.
Elsewhere, the matches between Leicester and Burnley and Middlesbrough — now five points off a playoff place — and already relegated Doncaster both ended in goalless stalemates.