Kazenga LuaLua had an effort saved early on for Brighton before Lingard put the Seagulls in front when he drove in using the outside of his foot.
Brilliant defending from Dorian Dervite then denied Ulloa as Brighton looked to extend their lead.
Ulloa eventually doubled Brighton's advantage, however, when he sprung Charlton's offside trap and fired home.
The goal came moments after Reza Ghoochanneijhad had hit the crossbar for the Addicks.
Brighton came out looking to turn the screw after the break, but Lingard could only fire over when one on one with Charlton keeper Ben Hamer.
Forster-Caskey then drove into the bottom corner in the last minute as Brighton saw out the game and secured victory.