Our FA Cup dreams faded as a combination of missed chances, last-ditch defending and that little slice of luck against us saw Pompey home 2-0 in Sunday's semi-final at Wembley.
Few would argue that we should have wrapped up this encounter before Fredrique Piquionne finally broke the deadlock in the first half of extra time.
Chances came and went, David James produced saves when it mattered and then, crucially, Michael Dawson suffered the misfortune of slipping at the key moment, allowing Piquionne the game's golden opportunity from six yards in the 99th minute.
That was a real hammer blow but even then, within seconds of the goal, we were straight up the other end only for Peter Crouch to hit the post and then see a goal disallowed as referee Alan Wiley blew the whistle for a foul by Niko Kranjcar on James. It was a tight call - as James' look of relief caught by the TV cameras suggested.
We couldn't find a goal in the second half of extra time and Pompey wrapped it up from the penalty spot in the 117th minute, Kevin-Prince Boateng drilling home following Wilson Palacios' foul on Aruna Dindane.
Harry Redknapp made five changes to the team that lost at Sunderland. Dawson returned to captain the side with Vedran Corluka and Tom Huddlestone also back from injury. It was a different front two as well as Peter Crouch and Jermain Defoe came in for Eidur Gudjohnsen and Roman Pavlyuchenko, who were both on the bench.
David Bentley's corners provided a couple of early chances. Defoe pounced on Corluka's flick but Aaron Mokoena's touch took the effort wide and then James was forced into a scrambling save to keep out Crouch's looping header.
There was a warning on the break from the next corner as Piquionne raced the length of the pitch before taking aim at the other end, Palacios back just in time to take the pace off the effort.
Piquionne tamely hit a volley at Gomes from close range in the 23rd minute and play went straight up the other end, Luka Modric hitting a dipper onto the roof of the net.
Huddlestone clipped in the cross of the half for Crouch to climb high above Ricardo Rocha and power in a header that James took spectacularly diving to his right.
Piqiuonne then had the chance of the half, running clear onto Hassan Yebda's pass and into the box, he had time to pick his spot but Gomes was up to the task and blocked with his left leg. Again, play switched immediately to the other as Bale got away from Steve Finnan only to see his pull back from the byline completely miss everyone.
James produced the save of the half in the 39th minute. Crouch controlled Corluka's cross and laid it back for Huddlestone to strike a delicious half-volley that was bound for the top corner until James stretched and clawed away.
We were on the front foot straight away at the start of the second half as Bale floated in a cross and Crouch headed down for Defoe to pull the trigger. It looked goal all the way but Rocha flew across goal to get in a saving block.
Piquionne had Pompey's first chance of the half in the 56th minute, but could only head tamely at Gomes and Defoe also failed to get full power behind a volley from 18 yards, again easy for James. That proved Defoe's last involvement as Harry made the first change of the game, a straight switch with Roman Pavlyuchenko entering the fray.
The next chance arrived for Crouch in the 65th minute as Bentley drilled in a corner with pace, James came but misjudged it and left the striker with a clear header at goal - he nodded a yard wide.
Pompey were being forced further back. Mokoena did enough as Crouch slid in for Bale's low cross and then Corluka looked for Crouch in a crowded area and Mokoena was there again, this time almost diverting the ball into his own net. Bale's next cross in the 76th minute took James out of the game but the angle was against Crouch, who hit the post from the byline.
Niko Kranjcar replaced Bentley in the 79th minute, another straight switch. He was soon in the action, taking a series of corners that Crouch managed to win, but the second ball just wouldn't drop right for us.
The board went up for two added minutes and we continued to look for that elusive goal. Crouch thought he'd found it when he prodded Bale's cross at goal only for James to block from point-blank with his legs. Modric then fired in another low cross that Wilson deflected towards his own goal, but into the grateful hands of James.
That was that and we went into extra time.
Pompey had the first half-chance as Piquionne fired into the side-netting and then Kranjcar, in space centrally, let fly straight at James. Kranjcar's clearance from Brown's corner then caught out Rocha and Pavlyuchenko was onto the loose ball but lashed well wide.
The deadlock was broken in the 99th minute. Mark Wilson clipped in a free-kick, Boateng headed into the danger area and Dawson slipped on the playing surface allowing Piquionne a free shot at goal from six yards - he couldn't miss.
We stormed back on the offensive and within seconds, Pavlyuchenko crossed for Crouch sliding in at the near post, his flick clipping the outside of the post.
We then had a goal disallowed as Bale got to the left byline and clipped in a cross, Kranjcar challenged James and the ball spilled to Crouch, who finished - but play was brought back for a foul on James. Eidur Gudjohnsen then entered the fray, so we had three strikers plus Modric and Kranjcar making front five - plus Bale raiding down the left.
As you'd expect, we were on the attack from the whistle, Bale's latest charge and cross found Pavluchenko sliding in but there wasn't enough power on his effort to trouble James.
Bale's shot found its way to Corluka at the far post but James narrowed the angle to save. James then plucked a cross and sent Pompey away on a counter, Dindane burst through centrally, Palacios got back to him and they both went over - penalty awarded.
Boateng drilled home from 12 yards and it was all over.
Spurs: Gomes; Corluka, Bassong, Dawson, Bale; Bentley (Kranjcar, 79), Huddlestone (Gudjohnsen, 101), Palacios, Modric; Crouch, Defoe (Pavlyuchenko, 59). Subs: Alnwick, Assou-Ekotto, Livermore, Rose.
Portsmouth: James; Finnan, Rocha, Mokoena, Mullins (Hughes, 119); Wilson, Brown, Yebda (Utaka, 87); Boateng, Dindane, Piquionne (Bouba Diop, 112). Subs: Ashdown, Kanu, Bouba Diop, Basinas, Smith.