Portsmouth won for the first time since early November after two Patrik Berger free-kicks ensured Harry Redknapp's side climbed out of the bottom three. Berger first hit a long-range free-kick into the net soon after the restart.
The Czech Republic international then repeated the trick on 68 minutes to increase the pressure on Spurs, who are slipping towards the relegation zone.
Portsmouth's Nigerian international Ayegbeni Yakubu should also have scored but he blazed over.
Spurs retaliated through Johnnie Jackson, who tested Harald Wapenaar with a long-range shot but the Dutch keeper was equal to the task.
Tottenham's Stephane Dalmat also proved a real menace down the right, while on 42 minutes Robbie Keane forced a fine save from Wapenaar.
Gradually, Portsmouth began to come back into the game and Alexei Smertin fired a well-positioned free-kick wide of the right post in the 24th minute.
Sherwood then nearly found Teddy Sheringham, but the former England striker was too slow to meet his team-mate's ball.
Arjan de Zeeuw also saw his header cleared off the line by Carr, while Sheringham's follow-up was kept out by Kasey Keller.
Portsmouth were further denied when another Smertin long-range effort was palmed away by Keller before Sherwood went close moments later.
Just before he scored Berger served notice of set-piece ability when his 20-yard free-kick sailed inches wide of the right post.
The Czech Republic international then lined up a free-kick some 35 yards out and smashed it home into the bottom left corner, beyond the reach of Keller.
Berger's second goal arrived in the 68th minute when he stepped up for yet another free-kick, this time crashing a blistering drive from just outside the area into the top middle of the goal.