Thierry Henry scored his 100th Premiership goal as Arsenal went five points clear at the top of the table.
Henry looked offside as he picked up Robert Pires' pass after 31 minutes to beat Southampton keeper Antti Niemi.
Southampton were furious, especially after they had penalty claims denied when Brett Ormerod looked to be fouled by Arsenal goalkeeper Jens Lehmann.
And Henry added his second in injury time, lashing home as Saints appealed for a foul on Danny Higginbotham.
The match was played out against the contentious backdrop of Glenn Hoddle's possible return as Southampton boss to replace the departing Gordon Strachan.
And Saints' fans made their feelings clear by holding up banners and placards demonstrating their opposition to speculation linking Hoddle with St Mary's.
Arsenal were not at their best, but still did enough to make it 25 games unbeaten in the Premiership this season.
Spanish new boy Jose Reyes made his full debut for Arsenal, while Saints left England striker James Beattie on the bench.
Pires has scored seven times in his last six games against Southampton, and he had two efforts on target in the opening three minutes.
But Southampton settled well and had legitimate penalty appeals waved away early on.
Saints fans question Hoddle boss link
Ormerod tumbled under the challenge of Lehmann, with Kolo Toure also in close attendance, but referee Steve Bennett ignored their claims.
And Arsenal had another scare when Lauren headed Graeme Le Saux's corner off the line.
Southampton suffered a blow after 27 minutes when the influential Anders Svensson limped off to be replaced by Chris Baird.
And they were hit with another setback when Arsenal took the lead in controversial fashion four minutes later.
Henry looked well offside as he raced on to Pires' pass, but the flag stayed down and he reached his century of goals by beating Niemi with a composed finish.
But Saints refused to go quietly and Ormerod was denied by the agility of Lehmann after 54 minutes when he dived to tip his drive around the post.
And the German was in action again as he saved Baird's volley at the far post.
Reyes almost doubled Arsenal's lead when he just failed to make contact with Henry's low cross at full stretch as Arsenal pressed.
Arsenal boss Arsene wenger attempted to inject fresh life into his lack-lustre side by replacing the tiring Reyes with Gael Clichy.
And as Southampton pushed for a point, boss Strachan sent on Beattie for earlier substitute Baird with 10 minutes remaining.
Saints continued to make life difficult for Arsenal, and Rory Delap was only narrowly off target as time ran out.
Henry, reportedly wanted by Real Madrid, had the final word when he hammered a finish into the roof of the net deep into injury time.
But again Southampton were furious, claiming Danny Higginbotham had been fouled by Ray Parlour well before the goal, insisting Arsenal should have put the ball out of play.
Arsenal: Lehmann, Lauren, Campbell, Toure, Cole, Parlour, Vieira, Silva, Pires, Henry, Reyes (Clichy 74).
Subs Not Used: Edu, Cygan, Stack, Bentley.
Booked: Vieira, Parlour.
Southampton: Niemi, Kenton, Michael Svensson, Higginbotham,
Crainey, Telfer, Anders Svensson (Baird 27), Delap,
Le Saux (Pahars 82), Ormerod, Phillips, Baird (Beattie 81).
Subs Not Used: Smith, Hall.
Booked: Baird, Niemi, Michael Svensson.
Referee: N Barry (N Lincolnshire).