St Albans City fell to their third successive National League South defeat after conceding a goal in each half at Clarence Park.
Joe Healy and Jack Jebb struck either side of the break for the Wings, who held on for the points after an injury-time reply from Nathaniel Pinney.
Welling’s Jeffrey Monakana had a shot from the edge of the box charged down by Percy Kiangebeni after only three minutes, while Christian Nanetti fired a volley from a corner over the crossbar soon after.
Shaun Lucien sent a shot wide at the other end after cutting inside, but Saints had Dean Snedker to thank for a fingertip save from Nanetti moments later.
The hosts were inches away from opening the scoring on eight minutes when Lucien found Layne Eadie, whose shot hit a post, and David Noble saw a 25-yard effort fly wide five minutes later.
Welling countered well and saw Jebb fire over after two efforts were blocked, while Snedker held on to another attempt from the same player on 17 minutes.
Ian Gayle headed wide for the visitors from a corner, but Solomon Sambou called Barnes into action at the other end with a shot from 25 yards.
Rhys Murrell-Williamson fired well wide from long range, before Zane Banton played in Charlie Walker and he forced Barnes into a low save.
Lucien had to be replaced by Kieran Monlouis on 35 minutes due to injury and Saints were forced to clear from a goalmouth scramble at a Welling corner, before Walker had an effort blocked.
But Welling took the lead a minute before half time as Healy curled past Snedker, after Saints felt Walker had been fouled.
And Snedker had to make a really good save low down to his left to deny Monakana within two minutes of the restart.
Noble sent a free-kick straight into the arms of Barnes, after Banton was brought down on the left, on 55 minutes, before Ian Allinson made his second change and sent Pinney on for Walker.
Sam Merson replaced Noble in the third and final change for Saints midway through the second half, but Welling doubled their lead moments later as Jebb found a way through to slot past Snedker.
Murrell-Williamson had a shot blocked on 72 minutes and Welling also cleared a long throw-in from Merson, before Barnes somehow managed to keep out Pinney’s effort, after Banton’s ball across the face of goal.
Barnes tipped a curling effort from Murrell-Williamson wide on 79 minutes to further frustrate Saints, while Snedker tipped Monakana’s shot just over, after sending a poor kick straight to the Welling player.
Saints Tom Bender was denied late on by Barnes at his near post, before Murrell-Williamson beat his man and sent a shot across the face of goal and wide.
But Saints found the net in stoppage time as Merson’s deep cross was headed past Barnes by fellow substitute Pinney.
St Albans: Snedker, Herd, Eadie, Noble (Merson 66), Kiangebeni, Bender, Lucien (Monlouis 35), Sambou, Walker (Pinney 57), Murrell-Williamson, Banton. Unused subs: Moore-Azille, Allinson-Stalham.
Attendance: 715.
Comments: Our rules
We want our comments to be a lively and valuable part of our community - a place where readers can debate and engage with the most important local issues. The ability to comment on our stories is a privilege, not a right, however, and that privilege may be withdrawn if it is abused or misused.
Please report any comments that break our rules.
Read the rules here