Southampton moved back to the top of the Championship but were denied victory as David Norris rescued a point for Portsmouth to keep alive their slim hopes of survival.
Billy Sharp gave the Saints a first-half lead, poking home from close range but Chris Maguire levelled for the visitors with an outstanding strike from the angle of the box.
Sharp looked to have earned Saints victory with a controversial late strike, which was initially ruled out for offside, before Norris struck deep into injury time.
The result leaves Saints level with Reading on 79 points but ahead on goal difference and only four in front of third-placed West Ham.
For Pompey this was a point earned, with Michael Appleton's men still five points from safety with five games remaining.
And if they can keep Maguire and Scott Allan fit for the remainder of the campaign they could yet pull off an unlikely escape.
Nigel Adkins's Southampton remain favourites for promotion to the Premier League despite throwing away a lead twice.
The result also sets up an intriguing battle with Reading, who are only behind the Saints on goal difference, at St Mary's next Friday.
REMAINING SAINTS FIXTURES
- 9 Apr Crystal Palace (a)
- 13 Apr Reading (h)
- 17 Apr Peterborough (a)
- 21 Apr Middlesbrough (a)
- 28 Apr Coventry (h)
Saints began the day second in the Championship table, booted off top spot by Reading following their 2-0 victory over Leeds on Good Friday.
They welcomed back top-scorer Rickie Lambert from injury as they looked to avoid back-to-back defeats for only the second time this season.
Pompey had the first chance of the game, Kelvin Etuhu testing Saints keeper Kelvin Davis with a fierce drive from just inside the box.
At the other end, Saints looked lively with Sharp's movement in particular causing the Pompey defence problems.
The striker put the hosts in front, poking home Lambert's pass from close range after Pompey failed to clear their lines.
But Maguire was proving a useful outlet for Pompey and he soon got the visitors level with an outstanding strike, which found the top corner of the net from the angle of the box, although keeper Kelvin Davis will have been disappointed to be beaten at his near post.
Maguire should have put the hosts ahead just after the break but after finding space in the Saints box he sliced his side-foot wide of Davis's goal from 12 yards out.
The game soon opened up and Pompey had Ashdown to thank for pulling off two fine saves, first from Adam Lallana's volley and then from Jose Fonte's close-range header.
It was the closest Saints came for some time, with the game becoming scrappy as Pompey looked to take the sting out of the match.
In the dying stages Fonte had a great opportunity for Southampton but, unmarked, he volleyed over from close range. And with two minutes remaining Lallana opted to round the keeper rather than shoot but lost his feet and the ball ran harmlessly out of play.
It looked as if the game would end 1-1 but with time up Sharp prodded home from close range following Steve de Ridder's knock down from Lallana's corner.
The goal was initially ruled out for offside but after consulting his assistant, referee Neil Swarbrick awarded Sharp's effort.
However, there was more action to come and deep into injury time Norris kept his nerve to fire a left-footed volley from 20 yards past Davis to rescue an unlikely point.
- 01 Davis
- 02 Richardson
- 06 Fonte
- 13 Fox
- 26 Hooiveld
- 04 Schneiderlin Booked (Cork - 7' )
- 10 Guly (De Ridder - 60' )
- 14 Hammond
- 20 Lallana
- 07 Lambert
- 11 Sharp Booked (Harding - 90' )
- 03 Harding
- 16 Martin
- 08 Cork
- 33 De Ridder
- 09 Barnard
- 01 Ashdown Booked
- 02 Ward
- 03 Rocha Booked
- 05 Pearce
- 15 Halford
- 23 Rekik
- 16 Allan Booked
- 19 Norris
- 11 Varney Booked
- 14 Etuhu Booked (Kitson - 69' )
- 22 Maguire Booked
- 30 Magri
- 24 Scapuzzi
- 09 Futacs
- 17 Harris
- 18 Kitson
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +6:55 Booking
Booking Luke Varney is booked.90:00 +6:15 Booking
Booking The referee shows Jamie Ashdown a yellow card.90:00 +6:13
Free kick awarded for an unfair challenge on Luke Varney by Steve De Ridder. Jamie Ashdown restarts play with the free kick.90:00 +3:59 Goal scored
Goal! - David Norris - Southamp'n 2 - 2 Portsmouth David Norris gets on the score sheet with a goal from just outside the penalty box to the bottom left corner of the goal. Southampton 2-2 Portsmouth.90:00 +2:16
Luke Varney concedes a free kick for a foul on Daniel Fox. Free kick taken by Kelvin Davis.90:00 +1:16 Substitution
Substitution Dan Harding comes on in place of Billy Sharp.90:00 +1:09
The referee blows for offside against Billy Sharp. Jamie Ashdown restarts play with the free kick.88:33
Assist on the goal came from Richard Lambert.88:33 Goal scored
Goal! - Billy Sharp - Southamp'n 2 - 1 Portsmouth Billy Sharp finds the back of the net with a goal from inside the six-yard box to the bottom right corner of the goal. Southampton 2-1 Portsmouth.88:26
Corner taken right-footed by Adam Lallana from the left by-line,87:55
Inswinging corner taken by Adam Lallana, clearance by Luke Varney.82:39
Free kick awarded for an unfair challenge on Daniel Fox by Dave Kitson. The ball is crossed by Daniel Fox, Shot from deep inside the area by Jose Fonte clears the bar.81:04
Billy Sharp concedes a free kick for a foul on Dave Kitson. Jamie Ashdown restarts play with the free kick.80:31
The referee blows for offside against Luke Varney. Indirect free kick taken by Kelvin Davis.79:42
The ball is swung over by Daniel Fox.78:34
Unfair challenge on Daniel Fox by Dave Kitson results in a free kick. Kelvin Davis takes the free kick.76:35
Free kick awarded for an unfair challenge on Scott Allan by Dean Hammond. Strike on goal comes in from Chris Maguire from the free kick.75:42
Outswinging corner taken by Scott Allan, Jose Fonte makes a clearance.73:58
Foul by Chris Maguire on Adam Lallana, free kick awarded. Jos Hooiveld takes the free kick.
Adam Lallana is caught offside. Indirect free kick taken by Chris Maguire.72:26
Dave Kitson is caught offside. Jose Fonte takes the free kick.71:16
Luke Varney delivers the ball.68:57
Jack Cork challenges Scott Allan unfairly and gives away a free kick. Scott Allan restarts play with the free kick.68:19 Substitution
Substitution Dave Kitson is brought on as a substitute for Kelvin Etuhu.68:00
Scott Allan takes a shot from 35 yards and went wide right of the goal.68:00 Booking
Booking Kelvin Etuhu shown a yellow card.66:23
Inswinging corner taken right-footed by Scott Allan, Jose Fonte makes a clearance.65:01
Billy Sharp is flagged offside by the assistant referee. Free kick taken by Jamie Ashdown.63:22
Luke Varney gives away a free kick for an unfair challenge on Jose Fonte. Free kick taken by Kelvin Davis.61:59
Adam Lallana produces a right-footed shot from outside the penalty area and misses left.61:33
Effort on goal by Luke Varney from just inside the penalty box goes harmlessly over the target.60:59
Richard Lambert concedes a free kick for a foul on Jason Pearce. Jamie Ashdown takes the free kick.59:38 Substitution
Substitution Guly Do Prado goes off and Steve De Ridder comes on.58:44
Outswinging corner taken from the right by-line by Scott Allan, Dean Hammond makes a clearance.57:25
Corner from the right by-line taken by Daniel Fox, clearance made by Jason Pearce.57:01
Corner taken right-footed by Adam Lallana from the left by-line, Jose Fonte takes a shot. Save by Jamie Ashdown.56:44
Adam Lallana takes a shot from 18 yards. Save made by Jamie Ashdown.56:10
Corner taken left-footed by Daniel Fox from the right by-line, clearance by Ricardo Rocha.55:04
Centre by Frazer Richardson, save by Jamie Ashdown.54:07
Chris Maguire sends in a cross.53:45
Centre by Adam Lallana, save made by Jamie Ashdown.51:55
Kelvin Etuhu produces a cross, Frazer Richardson makes a clearance.48:44
Unfair challenge on Frazer Richardson by Karim Rekik results in a free kick. The free kick is swung in left-footed by Daniel Fox.45:45
Effort from deep inside the area by Chris Maguire misses to the right of the goal.45:01
The referee gets the second half underway.45:00 +3:24 Half time
Half Time It is the end of the first-half.45:00 +2:15
Frazer Richardson gives away a free kick for an unfair challenge on Luke Varney. Scott Allan delivers the ball from the free kick right-footed from left wing, Dean Hammond manages to make a clearance.45:00 +1:13
David Norris is penalised for handball and concedes a free kick. Daniel Fox sends in a cross, Headed effort from inside the area by Jos Hooiveld misses to the right of the target.44:47
Inswinging corner taken by Daniel Fox, clearance by Luke Varney.44:31
Guly Do Prado takes a shot. Save by Jamie Ashdown.42:19
Adam Lallana produces a left-footed shot from just outside the box that goes wide right of the target.41:43
Daniel Fox takes the inswinging corner, Joel Ward makes a clearance.40:43
Joel Ward concedes a free kick for a foul on Adam Lallana. Shot on goal comes in from Richard Lambert from the free kick, save by Jamie Ashdown.35:22
Assist by Kelvin Etuhu.35:22 Goal scored
Goal! - Chris Maguire - Southamp'n 1 - 1 Portsmouth Goal scored by Chris Maguire from outside the area to the top left corner of the goal. Southampton 1-1 Portsmouth.33:15
Kelvin Davis takes the free kick.33:15 Booking
Booking Scott Allan receives a caution.33:02
Free kick awarded for an unfair challenge on Adam Lallana by Scott Allan.31:58
Shot by Billy Sharp from 18 yards. Save by Jamie Ashdown.27:25 Booking
Booking Billy Sharp receives a caution.26:52
Assist by Richard Lambert.26:52 Goal scored
Goal! - Billy Sharp - Southamp'n 1 - 0 Portsmouth Goal scored by Billy Sharp from deep inside the penalty box to the bottom left corner of the goal. Southampton 1-0 Portsmouth.26:04
Clearance made by Joel Ward.26:04 Booking
Booking Ricardo Rocha goes into the referee's book for unsporting behaviour.24:55
Corner taken right-footed by Adam Lallana,19:35
Shot by Daniel Fox from outside the box goes over the net.18:56
Foul by David Norris on Dean Hammond, free kick awarded. Jose Fonte restarts play with the free kick.18:21
Guly Do Prado has a shot and went wide right of the post.17:04
Kelvin Etuhu takes a shot. Save by Kelvin Davis.15:52
Shot by Daniel Fox from outside the box goes over the net.14:49
Inswinging corner taken by Adam Lallana from the left by-line.11:31
Billy Sharp fouled by Ricardo Rocha, the ref awards a free kick. The free kick is swung in right-footed by Adam Lallana, save by Jamie Ashdown.9:08
The ball is sent over by Frazer Richardson, clearance by Jason Pearce.6:33
Kelvin Davis takes the direct free kick.6:33 Substitution
Substitution Morgan Schneiderlin goes off and Jack Cork comes on.6:33 Booking
Booking The referee shows Chris Maguire a yellow card.6:25
Foul by Chris Maguire on Jose Fonte, free kick awarded.2:42
Free kick awarded for a foul by Scott Allan on Morgan Schneiderlin. Daniel Fox crosses the ball from the free kick left-footed from right wing, clearance by Kelvin Etuhu.1:13
Chris Maguire fires a strike on goal direct from the free kick.1:13 Booking
Booking Morgan Schneiderlin booked.1:09
Foul by Morgan Schneiderlin on David Norris, free kick awarded.0:00
The game gets underway.
Live data and text provided by our data suppliers