Darius Henderson picked the perfect time to score the 100th senior goal of his career with a late leveller against Southampton to keep Millwall's FA Cup dream alive.
Rickie Lambert's sublime 31st-minute header had put the visitors ahead and with the game entering the final three minutes, Henderson controlled Scott Barron's deep delivery and hooked home his 16th goal of the season to set up a Fourth Round replay on 7th February (subject to TV).
A draw was no more than Kenny Jackett's side deserved as they proved more than a match for a Southampton outfit currently sitting second in the Championship table.
Millwall came flying out of the traps and could have been two goals to the good within the first nine minutes.
There were barely 120 seconds on the clock when James Henry, in for the injured Hamer Bouazza, pumped a high ball into the box. Henderson was on hand to knock it back into the path of Liam Feeney, but his low fizzer smacked the far post before a Southampton boot cleared the danger.
On nine minutes some great control by Liam Trotter saw the stand-in skipper to make space before spraying the ball wide to Feeney on the left. Although the tricky winger's cross was hacked behind for a corner, Henry's resulting delivery found its way to Harry Kane at the back post, but he contrived to scoop over the bar from four yards.
Henderson was denied by the acrobatics of Bartosz Bialkowski midway through the half as the Saints keeper somehow got his hand to push the striker's volley over the bar.
Aaron Martin's header from a Saints corner hit the roof of David Forde's net as Nigel Adkins' men threatened whilst Henry sent a freekick straight into Bialkowski's hands before Lambert went even closer at the other end, firing inches wide from a similar position.
However Lambert made no mistake three minutes later, glancing a firm header past keeper Forde from Dan Harding's pinpoint cross on the left.
The Lions found it tough to create clear chances during the opening exchanges of the second half as Southampton defended impressively as a collective unit.
Feeney slipped a neat ball down the line for Kane on 56 minutes but the Spurs loanee's final delivery flew high and wide of the danger zone whilst Trotter's 59th-minute effort lacked power and was comfortably collected by the Saints keeper.
Kane saw his 67th-minute freekick deflected behind for yet another corner as Millwall tried to make their possession count.
That proved to be Kane's last involvement in the game with Lions boss Jackett introducing Chris Hackett and Dany N'Guessan in a double substitution for Henry and the young frontman.
Hackett's first touch, one of four corners in a five minute spell, picked out Tony Craig and the defender's bullet header flew narrowly off target.
A huge upfield punt by Forde was flicked on by Henderson to Trotter and the midfielder struck an effort over as Millwall attacked with increased urgency.
With Millwall pushing forward there was always a danger of being caught on the counter-attack, and Saints sub Lee Holmes so nearly took advantage, firstly being denied by a smart stop from Forde and then inexplicably heading wide from three yards with the goal at his mercy.
Hackett's low drive from 16 yards was on target, but keeper Bialkowski was perfectly position to avert the danger as Millwall kept plugging away in search of that elusive equaliser.
But just when it looked as if The Lions were going to run out of time, left-back Barron added great support to the attack and his cross was chested down by Henderson who swivelled and hooked a left-foot shot past the flat-footed Bialkowski.
Roared on by The Den faithful, Millwall finished strongly and so nearly nicked victory right at the death when sub N'Guessan fired straight at the visiting keeper after doing well to create space for himself.
A winning goal wasn't to be, however, but The Lions are deservedly in the hat for the Fifth Round draw on Sunday.
Millwall: Forde, Smith, Barron, Abdou, Ward, Craig, Feeney, Trotter, Henderson, Kane (N'Guessan, 67mins), Henry (Hackett, 67mins). Subs not used: Allsop, Marquis, Wright.
Scorer: Henderson (87mins)
Southampton: Bialkowski, Richardson, Martin, Harding, Fox, Hammond, Reeves, Puncheon (Shaw, 77mins), De Ridder (Holmes, 60mins), Barnard (Lee, 62mins), Lambert. Subs not used: Davis, Stephens, Prowse, Jaidi.
Booking: Bialkowski (80mins)
Scorer: Lambert (31mins)
Ref: R East
Att: 8,278 (away 1,503)