Edin Dzeko reduced the deficit as half-time approached but Barry then passed into his own goal unchallenged to put Saints on course for a first win since Mauricio Pochettino replaced Nigel Adkins at the helm.
Saints dominated the proceedings early on and, after Barry was dispossessed, Puncheon burst down the right flank and played through the unmarked Jay Rodriguez. Hart managed to deny the winger but the ball fell kindly for Puncheon, who slotted home calmly in front of the Northam End.
They eventually began to settle but were soon rocked by a second Southampton goal in the 22nd minute. Lambert collected the ball on the right and played a neat one-two with Puncheon, before cutting back and firing a shot that Hart let slip through from his midriff, allowing Davis to poke home.
Dzeko got himself in the way of terrible Saints corner, before bursting up the field and tucking home a Zabaleta cross.
It was harsh on the hosts, who felt hard done by in stoppage-time when Rodriguez was brought to ground in the area by Yaya Toure, captaining the side on his return from the African Nations Cup. Referee Martin Atkinson awarded a corner instead of a spot-kick much to the home fans' frustrations - but they were celebrating soon after the restart.
After Puncheon hammered over moments into the second half, the winger could then not quite latch onto a Lambert pullback, which Barry inexplicably passed into his own goal.