Jermain Defoe's controversial penalty fired Spurs to a narrow win to lift the hosts out of the bottom four and send Portsmouth to a second straight loss.
Jermain Defoe celebrates with fellow goalscorer Danny Murphy
Referee Chris Foy was the villain of the piece, penalising Pedro Mendes, despite Didier Zokora's blatant dive.
It proved to be the winner, adding to Danny Murphy's 39th-second tap-in.
Kanu gave Portsmouth hope with a neat header but Spurs held on, thanks in the main to a fine Paul Robinson save from Lomana LuaLua's header in injury time.
It was harsh reward for Pompey, who deserved more from a resilient display in a match that got off to a flying start.
With less than a minute on the clock, Tottenham notched their first goal in seven hours and 14 minutes of football.
Murphy was the unlikely poacher, flicking in cleverly from two yards after Dimitar Berbatov's header from Defoe's cross was fumbled by David James.
The relief throughout White Hart Lane was evident and, with the game flying by at a furious pace, the hosts made the most of the slick surface with some fine football.
Berbatov, back after five games out with a groin injury, and Murphy were at the centre of most of Spurs' best work and the latter almost added his second before the quarter-hour mark when his left-footed, curling effort was tipped acrobatically round the post by James.
But, for all Spurs' fervour, Pompey's new-found discipline in defence was clear for all to see.
Linvoy Primus and Sol Campbell were able to deal with most of what Spurs had to offer and also caused problems in Tottenham's box from a series of Gary O'Neil set-pieces.
Then the match's moment of controversy came, referee Chris Foy awarding a penalty after Zokora tumbled under Pedro Mendes' challenge in the box.
Replays showed the Ivorian had not been touched - by a matter of yards rather than inches - but it made no odds to Defoe, who stepped up to slam a low spot-kick past James' despairing dive.
Any thoughts that Tottenham would run away with the game, though, ended minutes later when former Arsenal star Kanu headed home O'Neil's precision cross to hand the visitors a lifeline.
And it was Pompey that emerged from half-time looking the more threatening, with Mendes and Nico Kranjcar pulling the strings in midfield.
The young Croat was slowly getting into the game and twice he cracked long-range efforts at goal, only for them to narrowly miss the target.
However, in truth, the second 45 minutes never quite reached the heights of the first half as both sides struggled to get behind the opposition defence.
James was called upon twice in the closing stages, firstly to deny Berbatov at his feet and then to stop Jermaine Jenas' curling shot, before the latter fired off-target twice when well-placed in the box.
There was still time for heroics from Robinson though, England's number one palming away brilliantly from LuaLua's point-blank header.
Tottenham's second win of the season was marred, however, by injuries to Pascal Chimbonda, a thigh stain, and Michael Dawson, who was helped from the field after a sickening clash of heads with team-mate Tom Huddlestone.
Tottenham manager Martin Jol
"Seeing Mendes' challenge on Didier now and I must be honest, there was no contact.
"I think Didier was anticipating Mendes' tackle and maybe lost his balance. But I don't think he did it on purpose. We don't want that sort of thing but I think this was something different.
"As for the game, I felt we deserved to win. They scored a soft goal from our point of view and then Paul made a great save at the end, but on the balance of chances we deserved it."
Portsmouth manager Harry Redknapp
"We started sloppily and conceded an early goal but then came the second and, everyone who has seen it will agree, it was farcical.
"I've looked round in the dug-out and within 10 seconds I've seen the replay and you can see Pedro was nowhere near him. So if I've seen it, why can't the fourth official?
"Now's the time to do something. These are important games and it is not enough to say that these things even themselves out over a season. We need a solution and the technology is there - so why not use it."
Tottenham: Robinson, Chimbonda (Huddlestone 45), Dawson (Davenport 81), King, Assou-Ekotto, Jenas, Murphy, Zokora, Ghaly, Berbatov (Keane 73), Defoe.
Subs Not Used: Cerny, Mido.
Goals: Murphy 2, Defoe 35 pen.
Portsmouth: James, Johnson, Primus, Campbell, Stefanovic (Taylor 64), O'Neil, Davis (Mwaruwari 64), Pedro Mendes, Kranjcar, Kanu (Cole 72), LuaLua.
Subs Not Used: Kiely, Pamarot.
Goals: Kanu 40.
Ref: C Foy (Merseyside).