The Gunners have now failed to win any of their last seven Premier League matches since beating Bournemouth 1-0 in early October.
After a dull start to the match Bernd Leno make a good save to keep out Neal Maupay’s 20-yard shot before the Seagulls moved ahead in the 36th minute when Adam Webster got to Dan Burn’s header before Aaron Connolly and prodded the ball home.
When Arsenal responded Mat Ryan saved Joe Willock’s header but Brighton deserved their half-time lead.
Five minutes after the interval the home team equalised when Mesut Ozil’s cross was flicked home by Alexandre Lacazette off the post.
Lifted by the goal, Arsenal enjoyed a purple patch and Pierre-Emerick Aubameyang and Sead Kolasinac went close to giving them the lead before David Luiz rightly had a goal ruled out for offside.
Aubameyang had a goalbound shot blocked before the visitors stunned Arsenal with an 80th-minute winner, Maupay heading Aaron Mooy’s cross past Leno.
The home team pressed in vain for a second equaliser but the closest they came to salvaging something from the match was Gabriel Martinelli’s header which was saved by Ryan.
The full-time whistle was greeted by a chorus of boos from the home fans but Brighton are now 13th, just one point and three places behind Arsenal.