The striker ended a five-game goal drought as the Saints look to lift the trophy for the first time in 45 years.
The visitors deserved their victory as Nuno Espirito Santo’s selection gamble for the hosts backfired.
Nuno made six changes – including giving captain Conor Coady a rare rest – in a surprise selection considering the FA Cup remained Wolves’ best chance of success – and a return to Europe – this year.
They continued to stutter though, having won just four times since November, and will seek instant revenge in the Premier League at St Mary’s on Sunday.
While Ralph Hasenhuttl made five he was still able to recall Kyle Walker-Peters and hand Mohammed Salisu his debut after an £10.9million summer move from Real Valladolid.
The Saints – who also included James Ward-Prowse – tried to make their strength tell early.
Ruddy gathered Armstrong’s drive at the second attempt as Ings lurked before the striker, with one goal in his previous 10 games, was then thwarted by Romain Saiss.
Armstrong continued to cause problems and Max Kilman’s sprawling block turned his drive behind.
Saints goalkeeper Fraser Forster was, aside from one hurried clearance, a spectator, although Salisu survived a VAR review when Morgan Gibbs-White tumbled under pressure in the box.
Wolves, with just 23 goals in 23 Premier League games, struggled to pose a threat but Southampton’s early dominance had waned and Saiss lifted Joao Moutinho’s free kick over just before the break.
The hosts then escaped three minutes into the second half when Armstrong missed a glorious chance. The midfielder arrived unmarked in the area but managed to sidefoot Ryan Bertrand’s cross wide with the goal gaping.
Ings saved his blushes a minute later when he fortuitously opened the scoring with his eighth goal of the season. The striker burst through and when his initial shot was saved by Ruddy the ball ricochet back off Ings and rolled in.
It was initially ruled offside but a VAR review showed the forward was onside.
However lucky, it was a lead Southampton deserved and the visitors now had a platform but Fabio Silva came close to an instant leveller when he fired Gibbs-White’s cross over the bar.
It summed up Wolves’ wastefulness and allowed the hosts to pass the three hour mark without a shot on target.
Nathan Redmond should have punished them after 67 minutes when he wasted the chance to finish the tie. The winger raced onto Armstrong’s pass, only for Ruddy’s smart save to turn the ball wide.
Wolves’ still had hope and they pushed to send the game into extra time – with Forster saving from Adama Traore at the far post after Salisu missed Pedro Neto’s cross.
Wolves then avoided further misery when VAR overturned a penalty, awarded by Jon Moss, when it showed Moutinho’s foul on Tella was outside the box.