Match ends, Charlton Athletic 1, Brighton and Hove Albion 3.
Brighton drew level on points with Championship leaders Burnley and Middlesbrough after beating Charlton.
In a game halted several times by protests from Addicks fans at owner Roland Duchatelet, Albion took an early lead through Sam Baldock as he tapped in a pass form Connor Goldson.
Johann Berg Gudmundsson levelled for Charlton soon after the restart.
However, Brighton took all three points as Jiri Skalak fired in and Tomer Hemed added a late penalty.
Middlesbrough's goalless draw with Ipswich saw the Seagulls draw level with them and leaders Burnley with 87 points each.
But Brighton remain in third on goal difference and face tricky games against Derby at home and Middlesbrough at the Riverside on the final day.
Following pre-match protests the game was halted after just 30 seconds as Charlton supporters threw balloons and beach balls onto the pitch in protest at Duchatelet's ownership of the club.
Similar protests occurred at the start of the second half, while the game was also halted for a short time in the 89th minute after a flare was thrown onto the field.
Had the Seagulls scored two more goals they would have gone up into second place on goal difference - and they had enough chances after the break to do it.
Baldock shot wide from a tight angle after a good ball from Baram Kayal, before forcing a great save from Nick Pope while Hemed nodded a great chance wide and Anthony Knockaert's late curling effort forced Pope into another great save.
But they had to make do with Skalak's excellent strike into the top corner and Hemed's spot-kick, which came after Rod Fanni chopped down Knockaert in the area in stoppage time.
Brighton manager Chris Hughton:
"It's a wonderful position to be in and one we would not have expected to be at this stage of the season.
"To be where we are is a credit to the group of lads. I think once you get to this stage the pressure is equal on each of the teams. We are all desperate to get promotion in whatever way that is.
"We've made the goal difference tighter there's no doubt about that. We have scored the goals at the right time. We certainly deserve to be in there with the two other teams."
Charlton manager Jose Riga:
"This is not the first time we have faced this situation. We had the same game against Middlesbrough. We had to be very ready, we were not. The players of Brighton were ready but I don't want any excuse, we know the context.
"The players gave their all and competed. We had a good reaction in the second half and equalised.
"Of course I'd prefer another atmosphere than this one.
"Communication will not be enough. It's about acting and showing some decisions now.
"We have to learn from our mistakes. It happens, relegation. We can build something. You see the story of Bournemouth. That is an inspiration for us and a lot of teams."
- 47MottaSubstituted forLennonat 63'minutes
- 7Berg Gudmundsson
- 14VetokeleSubstituted forSanogoat 63'minutesSubstituted forMakienokat 84'minutes
- 23RoseniorSubstituted forBongat 69'minutes
- 38SkalakSubstituted forMurphyat 84'minutes
- 9BaldockSubstituted forSidwellat 79'minutes
- 30Lua Lua
- Simon Hooper
- Shots on Target
Second Half ends, Charlton Athletic 1, Brighton and Hove Albion 3.
Corner, Brighton and Hove Albion. Conceded by Morgan Fox.
Attempt blocked. Anthony Knockaert (Brighton and Hove Albion) right footed shot from outside the box is blocked.
Foul by Callum Harriott (Charlton Athletic).
Steve Sidwell (Brighton and Hove Albion) wins a free kick in the attacking half.
Foul by Simon Makienok (Charlton Athletic).
Connor Goldson (Brighton and Hove Albion) wins a free kick in the defensive half.
Foul by Callum Harriott (Charlton Athletic).
Gaëtan Bong (Brighton and Hove Albion) wins a free kick in the defensive half.
Goal! Charlton Athletic 1, Brighton and Hove Albion 3. Tomer Hemed (Brighton and Hove Albion) converts the penalty with a right footed shot to the bottom left corner.
Penalty conceded by Rod Fanni (Charlton Athletic) after a foul in the penalty area.
Penalty Brighton and Hove Albion. Anthony Knockaert draws a foul in the penalty area.
Foul by Alou Diarra (Charlton Athletic).
Beram Kayal (Brighton and Hove Albion) wins a free kick in the defensive half.
Corner, Brighton and Hove Albion. Conceded by Nick Pope.
Attempt saved. Anthony Knockaert (Brighton and Hove Albion) left footed shot from the centre of the box is saved in the top left corner. Assisted by Jamie Murphy.
Attempt saved. Callum Harriott (Charlton Athletic) left footed shot from outside the box is saved in the centre of the goal. Assisted by Ademola Lookman.
Delay over. They are ready to continue.
Delay in match (Charlton Athletic).