Tomasz Radzinski scored twice in the final seven minutes to maintain Everton's drive for Europe and break Southampton's hearts in a thrilling finish at Goodison Park.
His first, on 83 minutes, came with a fine header from substitute Wayne Rooney's cross.
The second, in the third minute of injury time, was a stunning angled drive into the roof of the net.
James Beattie, with his 18th goal of the season, had Southampton ahead at the break, but Everton's tireless second-half performance finally brought its rewards.
As expected, Rooney returned to Goodison Park first team action, for the first time since New Year's Day, as a substitute.
While he has been suspended the 17 year-old has made his full England debut and signed a new contract and he was rapturously received by the fans every time he got off the bench for a warm-up.
Everton were their usual energetic, quick tackling selves, with Li Tie doing particularly well, but it was not getting them very far in the first period.
When they did finally get their act together, Steve Watson was unfortunate after a clever turn, to see a 10 yarder charged down and then a low cross beaten away.
Scot Gemmill and then Radzinski almost got themselves on the scoresheet before Radzinski's pace took him onto a Brian McBride ball on 22 minutes and he was blocked by Prutton, who was booked by referee David Elleray.
The Saints were presented with the opening goal by unusually sloppy Everton defending. David Weir was playing Beattie onside when Fabrice Fernandes' pass reached him.
He was in yards of space and moved on to chip a shot over
Richard Wright, and Alessandro Pistone's attempts to get back and hook it out failed on the line.
Everton were brighter after the break and Radzinski had strong appeals for a penalty turned down after Paul Telfer looked to have handled.
Then Antti Niemi saved from McBride and produced a cracking tip over from Naysmith.
It was all action now. Stubbs had a downward header pushed over the bar by the Finnish 'keeper, and Wright saved well from a Beattie drive.
Beattie then saw a header knocked off the line by Weir before Niemi stretched up to touch away another Radzinski effort.
Everton made a double substitution on 58 minutes, Kevin Campbell and Thomas Gravesen replacing McBride and Li Tie. Three minutes later Jo Tessem came on for Ormerod.
Finally, on 64 minutes, Everton fans got what they wanted when Rooney took over from Naysmith.
Campbell had an immediate impact when one effort clipped over and then set up Radzinski for a rising effort that hit the outside of a post.
The equaliser deservedly arrived on 83 minutes when Rooney's measured cross from the left was powered home by Radzinski with a six yard header. Rooney seconds later, turned into space to power another effort just wide.
Three minutes into injury time Radzinski took a Gravesen pass to unleash a stunning angled drive high into the roof off the net.
Teams
Everton Wright, Pistone, Weir, Stubbs, Unsworth, Watson,
Li Tie (Gravesen 59), Gemmill, Naysmith (Rooney 64),
McBride (Campbell 59), Radzinski.
Subs Not Used: Yobo, Gerrard.
Goals: Radzinski 83, 90.
Southampton Niemi, Telfer, Michael Svensson, Lundekvam,
Higginbotham, Fernandes (Dodd 70), Anders Svensson (Davies 88),
Oakley, Prutton, Beattie, Ormerod (Tessem 61).
Subs Not Used: Jones, Williams.
Booked: Prutton.
Goals: Beattie 33.
Att: 36,569
Ref: D Elleray (Middlesex).