The Whites won a 15th-minute penalty when Bruno handled, but David Stockdale saved Stefan Johansen's spot-kick.
The hosts dominated the first half and were rewarded after the break as Lucas Piazon curled into the corner.
However, the game turned when Tomer Hemed levelled from the penalty spot after he was fouled, before Lewis Dunk was quickest to a loose ball to score Brighton's winner two minutes later.
The win for the visitors, coupled with Newcastle's surprising loss at Blackburn, sent the Seagulls two points clear at the top after they extended their unbeaten run to 18 league games.
Fulham boss Slavisa Jokanovic left striker Chris Martin out of his squad, with the forward linked with an early return to parent club Derby County from his season-long loan.
It did not seem to affect the hosts in the opening hour. They forced the early penalty and also had Matt Smith go close in the first half, before Piazon's opener soon after the break.
The Seagulls drew level when Ragnar Sigurdsson brought down Hemed in the box and the Israel striker scored his sixth goal of the season.
And before Fulham had time to gather themselves, Dunk was on hand to head in the rebound after Anthony Knockaert's effort had been saved.
Chris Hughton, Brighton manager :
"We probably didn't deserve the win but we showed enough.
"There were periods in the game where Fulham looked very good. It is very difficult when you are playing a team as expansive as these are. You have to make sure you don't allow them opportunities to play.
"We found it difficult but we came away with the best chance in the first half but we needed a goalkeeper who was very good today and sometimes those ingredients win you games."
"The challenge for the players is to stay at the top. We have stressed to the players the second half of the season will be harder because everyone is pushing harder, expectation levels rise and we have to manage that.