Gosport Borough suffered Hampshire Cup misery as a last-gasp goal from Robbie Matthews sealed a 3-2 semi-final win for Basingstoke Town at Privett Park.
Alex Pike’s team had fought their way back from 2-0 down, with a double from Rory Williams.
But that all counted for nothing after poor defending let Matthews in for a 90th-minute winner, to set up a Fratton Park final against Hawks.
Gosport assistant boss Mick Catlin was left to rue what ‘should have been’.
He said: ‘We’re massively disappointed. At 2-2 there was only one side in it.
‘It should be us in the final and not them.
‘But we went and gave them a winner.
‘To be fair, the lad did take the goal well.
‘All we can do is wish them well in the final.’
Borough attacked well early on as Adam Wilde fed Tim Sills, who was unlucky to see his neat flick fall into the arms of keeper Louie Wells.
Against the run of play, the visitors took the lead on 10 minutes.
Borough failed to deal with a speedy run from former Pompey midfielder Neil Barrett.
He set up Simon Dunn, who fired high into the net from the edge of the area.
Borough responded immediately, with Sam Pearce and Mike Gosney setting up a great chance for Dan Wooden.
But the striker shot yards wide of the far post.
On 30 minutes, Ryan Scott saw his shot fly over and Gosney was next to flash an effort off target.
Borough were dominating but in a rare break, Basingstoke were handed the chance to make it 2-0.
Jamie Brown brought down Kezie Ibe in the penalty area.
Ibe took the spot-kick but keeper Gareth Barfoot beat the ball out.
Amazingly, Ibe was immediately brought down again as he went for the loose ball and the referee pointed to the spot for a second time.
This time Jordace Holder-Spooner took it and found the net to put the visitors 2-0 up.
On 58 minutes, Gosport began the fightback.
Williams cut through a hesistant Basingstoke defence to thump a shot past Wells into the net.
The striker then blasted Borough level.
However, on 90 minutes, Gosport gave striker Matthews the freedom of Privett Park.
He beat Brett Poate and rounded keeper Barfoot before netting.
It means Town will take on Lee Bradbury’s Hawks in the final in May.
GOSPORT: Barfoot, Molyneaux, Williams, Brown, Poate, Pearce, Gosney, Scott, Sills, Wooden, Wilde. Subs: Woodward, Igoe, Smith, Dunford, Ashmore.
BASINGSTOKE: Wells, Rice, Green, Dunn, Adams, Ray, Holder-Spooner, Jenkinson, Matthews, Ibe, Barrett. Subs: Smart, Williams, Soares, Maylen, Debattista.
Referee: Dan Cook (Gosport).