Substitute Kevin Phillips' header gave under-pressure Southampton boss Steve Wigley his first Premiership victory.
The visitors went ahead when Andreas Jakobsson headed into his own net but Dexter Blackstock hooked Saints level.
Claus Lundekvam and Dejan Stefanovic missed good headed chances and Patrik Berger hit the bar as both sides pushed for a winner in the second half.
Phillips had been on for two minutes when he converted Jason Dodd's free-kick to settle the south coast derby.
Saints were desperate for a win to save Wigley from the axe but a frantic opening spell saw them fall behind in bizarre circumstances.
Jakobsson headed over the on-rushing Kasey Keller, who had only joined Saints on loan from Tottenham on Friday, to put Portsmouth ahead.
That was Jakobsson's last contribution - both he and Pompey striker Lomana LuaLua were injured in the incident - and Dodd came on to replace the Swede.
But Southampton fans had to only wait six minutes for something to cheer about as a goalmouth scramble, during which the ball appeared to come off James Beattie's arm, ended with Blackstock hooking home.
The game was becoming increasingly stretched and there was another scare for the home side a few minutes later when Linvoy Primus reacted quickly to a hopeful through-ball but could not beat Keller from a difficult angle.
Yakubu, who had been felled by a crude Rory Delap challenge which led to a yellow card for the Saints midfielder, became the second player to be forced off as the relentless pace continued.
LuaLua raced in on goal before firing straight at Keller in the last significant piece of action of the first half.
Pompey started brightly after the break and Fuller, who had come on for Yakubu, fired in a dangerous ball across the six-yard box which LuaLua could not get on the end of.
And moments later Unsworth failed to keep his volley down after ghosting into the area.
Blackstock almost gave the Saints the lead when he headed down Dodd's corner but Hislop palmed it away before the unmarked Lundekvam headed just over from Delap's long throw.
Delap then got in on the action and Pompey were relieved to see Stefanovic block his well-struck drive from inside the box.
Pompey should have been back in front when Stefanovic headed over from six yards out when he was left free from Berger's corner.
The Czech international then came desperately close to a goal himself when his sweetly-struck effort hit the woodwork from just outside the area.
Anders Svensson forced Hislop to palm away another long-range effort as both sides pushed hard for a decisive goal.
And it was Phillips, who had come on for the ineffectual Beattie, who provided it when he took advantage of poor marking to head in Dodd's free-kick.
Saints continued to defend poorly from set-pieces and Arjan De Zeeuw really should have levelled from Gary O'Neil's inswinging corner but he also headed over.
There was drama right at the end when Keller brilliantly palmed away a fierce drive from Matthew Taylor and the home side held on for a much-needed win over their bitter rivals.
Southampton: Keller, Kenton, Lundekvam, Jakobsson (Dodd 16),
Le Saux, Anders Svensson, Delap, Telfer,
Fernandes (Griffit 80), Beattie (Phillips 68), Blackstock.
Subs Not Used: Blayney, Crouch.
Goals: Blackstock 18, Phillips 71.
Portsmouth: Hislop, Primus, De Zeeuw, Stefanovic,
Unsworth (Taylor 79), O'Neil, Faye, Quashie,
Berger (Griffin 79), Yakubu (Fuller 36), LuaLua.
Subs Not Used: Ashdown, Cisse.
Booked: Faye, De Zeeuw, Quashie.
Goals: Jakobsson 12 og.
Ref: G Poll (Hertfordshire).