Two headed goals at the Trent End - Lewis Dunk in the first half and Dexter Blackstock in the second - looked to have decided the outcome of a game which could well have ended in victory for The Reds.
But substitute Steve Sidwell scored a scrappy injury-time winner to give the Seagulls' automatic promotion hopes a significant boost.
Injured central defenders Michael Mancienne and Kelvin Wilson both missed out, leaving the door open for Danny Fox to make his first league start since October - albeit not in his preferred position of left back. Bojan Jokic took that role, while Henri Lansbury captained the side from central midfield.
Jamie Ward started as lone striker, while young centre back Joe Worrall was named on a bench which also included Ryan Mendes, Oliver Burke and Federico Macheda.
Brighton claimed the first chances of the game, Dale Stephens failing to connect properly with a shot in the area and Tomer Hemed skewing the ball across goal and wide after being threaded through by Kazenga Lualua. Moments later, Hemed drew the game's first booking when Matt Mills blocked him off 25 yards out.
Forest's first chance came on 17 minutes when Lansbury drifted into space to receive the ball from Fox. The former Arsenal man was afforded the space to take the ball within shooting range and he produced a good save from David Stockdale, who got down low to tip it wide. The resultant corner was half-cleared to Jokic, who in turn supplied Ward on the edge of the area. The forward spun and saw his deflected shot sail straight into Stockdale's grasp.
Jokic was the next man in the book following a succession of fouls, while Ward offered the game's next shot when he curled the ball straight at Stockdale from the corner of the area.
But it was the visitors who took the lead on 27 minutes. Eric Lichaj fouled Lualua near the left touchline and Jiri Skalak's devilish delivery found the head of Dunk, who nodded the ball beyond Dorus de Vries and into the net.
Forest were left frustrated by an unanswered penalty appeal seven minutes later. Mills' lofted ball forward invited Stockdale off his line but Ward got there first, nodding the ball away from himself and appearing to be nudged by the keeper just inside the area. The referee saw no foul and waved play on.
And the half got worse for Ward shortly afterwards when he pulled up with an injury and was replaced by Dexter Blackstock.
The Reds had a good opportunity to level the scores on the stroke of half-time when, with Seagulls defender Connor Goldson grounded following an off-the-ball clash with Lansbury, Jokic squared the ball for Cohen in the middle. The midfielder opened his left foot on the shot but couldn't keep the ball down, sending it over the bar.
Forest began the second half on the front foot and Brighton's Bruno will have felt fortunate that his deflection on Osborn's shot didn't deviate the ball's path either side of Stockdale, who gathered with ease.
But Forest had the leveller minutes later in similar fashion to how the visitors opened the scoring. Lansbury's free-kick from the left was perfect for Blackstock, who rose highest in the middle to glance the ball into the net.
It took Brighton until the 57th minute to muster a response, Bruno advancing from right back and playing the ball into the middle. Jamie Murphy helped it on to Hemed, who acrobatically sent it towards de Vries' bottom-right corner. The Dutchman got down well to hang on to it.
Gardner and Skalak both fired shots wide as the sides jostled for dominance on a cold, damp evening on Trentside.
Brighton boss Chris Hughton made the game's first change on 63 minutes when Manchester United loanee James Wilson replace Lualua.
Forest coach Williams followed suit four minutes later, sending Mendes on in place of Vaughan, who had earlier been booked for a foul on Stephens.
And The Reds had a golden opportunity to take the lead shortly afterwards when Blackstock robbed Goldson of possession, leaving himself and Lansbury two-on-two in the Brighton half. The forward reached the edge of the box before supplying the midfielder to his right. Lansbury was free of the Brighton defence but the ball was running wide on a slippy surface. With Stockdale rushing out to narrow the angle further, he could only dink it over the bar.
Forest had the upper hand but Wilson fired a warning shot narrowly wide before substitute Anthony Knockaert's perseverance led to him forcing a strong save from de Vries, who dived to his right to push the ball behind. Hemed had an excellent chance to restore his side's lead from the resultant corner but he could only head the ball wide at the back post.
As the game entered its final ten minutes The Reds broke through Lansbury. Osborn made a lung-bursting run to his left and Lansbury delayed the pass well to ensure his team-mate had a good shooting opportunity. His pass ran a little wide but Osborn still managed to strike the ball cleanly, Dunk sliding in to divert it narrowly wide of the post. Lansbury's subsequent corner picked out Blackstock at the back post but the forward nodded the ball wide.
Gardner was the next man to be replaced, Robert Tesche coming on after his fellow midfielder had received treatment for what looked like a minor impact injury.
And the German spurned a good chance to fire his side ahead when the ball came to him in space just outside the area. He could only scuff it wide - and Forest were made to rue their missed opportunities.
Shortly after five minutes of added time were indicated, Knockaert showed his threat once again when he wriggled into the area and kept the ball alive despite being surrounded by a sea of red shirts. It came to substitute Sidwell near the penalty spot and the experienced midfielder lashed it into the bottom corner.
There was still time for Forest to find an equaliser and Cohen had a chance to provide one with the last kick of the game. The ball rolled to him inside the area but he could only guide it wide with his left foot.
Forest: De Vries, Lichaj, Mills, Jokic, Fox, Gardner (Tesche 84'), Cohen, Vaughan (Mendes 68'), Osborn, Lansbury (c), Ward (Blackstock 42')
Subs not used: Evtimov, Macheda, O.Burke, Worrall
Goal: Blackstock 50'
Bookings: Mills 13', Jokic 22', Vaughan 62'
Stockdale, Bruno, Goldson, Dunk, Rosenior, LuaLua (Wilson 63'), Kayal (Sidwell 84'), Stephens, Skalak, Murphy (Knockaert 68'), Hemed
Subs not used: Maenpaa, Greer, Bong, Towell
Goal: Dunk 27'
Booking: Dunk 67'
Referee: Andy Davies
Attendance: 17,642 (645 away)