Pompey exited the Carabao Cup as they took Cardiff to extra-time in Wales.
An impressive performance from Kenny Jackett’s side saw them take a deserved first-half lead against their Championship hosts through a Sean Morrison own goal.
The home side equalised two minutes into the second half through Fratton Park old boy Nathaniel Mendez-Laing.
But they were unable to seize the initiative from the goal and were forced into an extra 30 minutes from the visitors, who showed up well at the Cardiff City Stadium.
Penalties looked on the card until another former Blue struck halfway through the second period.
On this occasion, Greg Halford popped up to break blues hearts and send Pompey out of the cup.
After some good football in the opening exchanges, the Blues took a deserved lead on 32 minutes following a mistake from Cardiff defender Sean Morrison.
Kal Naismith fired in a hopeful cross from from the left, and the Bluebirds centre-half was unable to clear as the ball ended up in the back of the net.
The opener failed to spark the home side into life, and in an impressive opening 45 minutes from Jackett’s side it was Pompey who looked the more dangerous going forward.
Indeed, just before the break, a good through ball from Brett Pitman set Gareth Evans free into the box.
Former Blues keeper Brian Murphy looked the favourite to be on the receiving end, but he fumbled and fouled the winger.
The resulting free-kick was pushed back to Danny Rose but he was unable to add to the Blues’ lead.
The second-half produced the reaction you would expect from a Neil Warnock side - and the hosts duly equalised on 47 minutes through substitute Nathaniel Mendez-Laing.
A ball was fired across goal from the left and the former Pompey loanee was there to fire home past Luke McGee, who minutes earlier had done well to tip Bruno Mango’s header against the bar.
From then on it was back against the wall for the visitors, with some defensive mite that will have impressed the manager.
When Cardiff did get sight of goal, McGee was bravely out to deny the impressive Matthew Kennedy from close range, the winger then failed to find the target when well positioned on 78 minutes, while substitute Junior Hoilett shot a shot deflected over.
Pompey were clearly tiring but managed to find extra reserves as they went for the win in the dying minutes of normal time.
Sub Nicke Kabamba could have done better when set up by Drew Talbot on 90 minutes.
Meanwhile, Rose saw his fierce shot blocked as Cardiff hung in at the death.
No breakthrough was found, though, and the game entered extra-time.
With the natives getting restless, Cardiff upped the pressure again but found Pompey in no mood to give ground.
McGee did well again to save with his legs to deny Hoilett in the first period of extra-time.
With the clock ticking down towards penalties, the Blues looked strong enough to take the game to spot-kicks.
But with 112 minutes on the clock, up popped Halford to send Pompey out.
A cruel blow but there are plenty of positives to take back to Fratton Park as Jackett’s side gave the Championship side a difficult evening.