Arsene Wenger's side rarely threatened in a game that the relegation-threatened hosts looked more likely to win.
Saints went ahead after 34 minutes. It was a goal that the Gunners should have prevented but, after wasting several chances to clear their lines, Gaston Ramirez fired home.
The lead lasted seven minutes, though, as Theo Walcott, making his first appearance at St Mary's since leaving in 2006, whipped in a free-kick that Do Prado could only prod into his own goal.
Arsenal began strongly and Santi Cazorla saw a long-range strike deflect just wide in the fifth minute. Southampton's Artur Boruc, making his first appearance since October 28, was fortunate that his fumble at the resulting corner did not cost his side.
Neither side were creating much in the final third and the opening goal came thanks to shambolic defending rather than any moment of genius. Arsenal failed on a number of occasions to clear the ball and, after seeing a shot blocked, Jason Puncheon pulled back for Ramirez to score from just inside the 18 yard box.
However, Puncheon gave away a free-kick wide on the left and Do Prado directed Walcott's cross past his own goalkeeper.
Arsenal thought they had a second before the break as Walcott found a way past Boruc, only for it to be chalked off for offside.
Gunners goalkeeper Wojciech Szczesny proved his worth in the 56th minute, palming a threatening Do Prado effort behind and from the resulting corner reacting quickly to stop Rickie Lambert bundling home.
Saints wasted a chance when Lambert slipped in the box with the goal at his mercy before Puncheon fired into the side-netting from an acute angle and Ramirez struck over prior to seeing a goal ruled out for a foul.