Despite having just one win in 18 games, the Saints began brightly and, within eight minutes, were cutting through a slovenly Gunners backline with ease.
Moments later, Dusan Tadic reached the byline and sought to cut the ball back across goal, winning a corner as the Arsenal defence struggled to cope.
Indeed, Southampton went on to break the deadlock on 17 minutes as Cedric Soares crossed the ball into the box past Sead Kolasinac, and with Petr Cech and Shkodran Mustafi hesitating, Shane Long pounced to poke the ball into the net.
The Gunners set about trying to draw level and, just 11 minutes later, Welbeck sent a clever flick from the right-hand edge of the box, past Soares and into the path of Pierre-Emerick Aubameyang, who nudged the ball past Alex McCarthy.
Although Southampton enjoyed a bright spell of possession thereafter, the hosts struck again on as their provider turned scorer, Welbeck's effort from just outside the box taking a deflection off Maya Yoshida en route to the back of the net.
The second half saw both sides trade blows but the fourth goal of the game would go to Southampton, as substitute Charlie Austin finished off Soares's low cross to centre.
On 78 minutes, Welbeck was guilty of missing a sitter, shanking wide from three yards out with the goal gaping open after being slipped the ball by Jack Wilshere.
However, the forward made amends three minutes later by heading home at the back post from Alex Iwobi's hanging cross to secure what would turn out to be the winner.
The match ended on a chaotic note as Stephens saw red for lashing out at Wilshere, who himself earned a yellow card for his part in an injury-time scuffle, while Mohamed Elneny was also sent off for a shove on Soares.
ARSENAL (4-2-3-1): Cech; Bellerin (Holding 74'), Mustafi, Chambers, Kolasinac; Elneny, Xhaka; Nelson (Wilshere 64'), Iwobi, Welbeck; Aubameyang (Lacazette 71')
SOUTHAMPTON (3-4-2-1): McCarthy; Stephens, Yoshida (Austin 72'), Hoedt; Soares, Romeu, Hojbjerg, Bertrand; Ward-Prowse, Tadic, Long (Sims 80')