Danny Ings scored twice and Charlie Austin stepped off the bench to delver Southampton a first win under manager Ralph Hasenhuttl.
Austin restored Southampton’s lead four minutes from full-time when he headed home, before Saints held on for a 3-2 win over Arsenal.
In the process of earning their first home victory in over a year, Southampton snapped Arsenal’s 22-game unbeaten run.
Southampton’s intent was evident from the start with Nathan Redmond having an effort deflected behind for a corner on 14 minutes.
But Ings made Arsenal pay on 20 minutes when he met Matt Targett’s sensation cross with a powerful header.
Arsenal responded after going down a levelled through Henrikh Mkhitaryan, who also found the back of the net with his head.
With the teams set for a level opening half, Ings popped up again to put Saints ahead 2-1 from his second header of the game.
The forward, who has been returning from injury, connected with Redmond before a looping header went beyond Bernd Leno’s grasp on the stroke of half-time.
Mkhitaryan added his second goal eight minutes after the restart when his effort took a deflection off Jannick Vestergaard and by the unexpected Alex McCarthy.
Second-half substitute Austin, who replaced the dangerous Ings on 72 minutes, nodded home a header of his own from Long’s clipped ball to the back post.
Southampton: McCarthy, Targett, Yoshida, Vestergaard, Bednarek, Valery, Romeu, Hojbjerg, Armstrong (Johnson 90), Redmond (Long 63), Ings (Austin (72).
Unused subs: Gunn (GK), Davis, Ward-Prowse, Hoedt.
Goals: Ings (20, 44), Austin (86).
Bookings: Bednarek (51), Armstrong (71), Long (90+5).
Arsenal: Leno, Koscielny, Xaka, Lichtsteiner (Maitland-Niles 74), Guendouzi, Torreira, Monreal, Bellerin (Lacazette 46), Aubameyang, Iwobi (Ozil 70), Mkhitaryan.
Unused subs: Cech, Ramsey, Eineny, Nketiah.
Goals: Mkhitaryan (28, 53).
Bookings: Koscielny (60).