Liam Feeney's 92nd-minute strike helped Millwall complete a late comeback to dump Southampton out of the FA Cup.
Millwall dominated the early stages and James Henry teed up Liam Trotter to fire in from the edge of the box.
But Southampton levelled when Adam Lallana slid the ball past David Forde.
Lallana hit the bar with a free-kick before Rickie Lambert controlled on the edge of the box and finished. But Dany N'Guessan's bullet header made it 2-2 before Feeney's stunning winner.
The London side had the better of the first 35 minutes and deserved their lead as Trotter finished. Millwall should have doubled their advantage but Ryan Mason curled a shot into the side-netting.
DID YOU KNOW?
This victory for Millwall ended Southampton's 10-game unbeaten run against them.
N'Guessan fired into the side-netting as Millwall continued to press before Lallana fashioned an equaliser in the 35th minute against the run of play as he danced past the visitors' defence to fire past Forde.
Saints continued to press in the second half as Lallana struck the bar with his free-kick. Millwall, though, were still providing a threat and Saints had goalkeeper Bartosz Bialkowski to thank for keeping the scores level, stopping James Henry and Trotter efforts.
Saints returned to the attack after a brief period under the cosh, with Tadanari Lee, substitute Rickie Lambert and Lallana all coming close.
Lambert fired home Southampton's second, seemingly putting Nigel Adkins' men on course for victory, before N'Guessan headed home a superb Henry cross and then Feeney struck home at the death.
Southampton manager Nigel Adkins:
"Obviously we wanted to win the tie and we felt we had enough on the pitch to go and do that. When you get yourselves 2-1 in front you should go and see the game out.
"Ben Reeves had a goal disallowed which was actually a very good goal and wasn't offside so the linesman made a mistake on that.
"But the three goals we conceded and a few opportunities we presented Millwall summed up the way we have conceded goals this season. It is not acceptable."
Millwall manager Kenny Jackett:
"It was an excellent game. We played our part.
"We caused them lots of problems. I think both sides went for it and from a neutral's point of view I am sure it was an excellent game.
"If we can do that against a side that has been as successful as Southampton, we should be able to take that bit of confidence from that win into our league form against Derby County and Brighton away."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.