West Bromwich Albion 0 Portsmouth 1
However, Pompey were second-best for long spells, particularly before the interval, as Tony Mowbray's side belied their status as underdogs.
It took a goal by former Baggies star Kanu to settle the match, but even then Mowbray's side were unfortunate not to snatch an equaliser when Robert Koren's stunning shot beat David James only to come back off the crossbar.
Portsmouth seemed nervous and devoid of ideas in the first 45 minutes as Albion dominated possession, although the Championship side struggled to create many clear-cut chances of their own.
Harry Redknapp's side seemed incapable of closing Kevin Phillips down as the veteran striker helped Albion create several early openings.
James fumbled Zoltan Gera's long-range shot in the fifth minute, but Sol Campbell was able to clear the ball before any Albion player could knock home the rebound while Phillips had a goalbound effort blocked.
Albion were quicker to almost every 50-50 ball in the first half and seemed to be up for the game whereas Portsmouth appeared to be overawed.
Pompey did not create an opening until the 41st minute when Milan Baros was sent clear by Kanu, but the Czech striker was unable to get his toe to the ball and Dean Kiely gathered comfortably.
For all Albion's first-half dominance though, the match remained goalless at the interval and the feeling persisted that Redknapp's side could not be as bad in the second period.
In truth, Pompey were not much better after the break but they did grab the all-important goal in the 54th minute.
After a ragged start to the second period, Kiely did well to parry Baros' close-range shot but, as the veteran keeper tried to gather the ball, Gera got in his way allowing Kanu to tap home the rebound.
Portsmouth suddenly started to dominate proceedings and should have scored a second goal in the 66th minute when Nico Kranjcar played in Baros who seemed certain to net, only for Kiely to deflect the former Liverpool and Aston Villa striker's weak shot away for a corner.
Albion failed to replicate their first-half display after the interval although Koren almost ensured the match would move into extra-time when rattling the crossbar with 15 minutes left.
Substitute Ishmael Miller also wasted a great chance to grab a late equaliser when he side-footed the ball wide from ten yards out, but it is Portsmouth that now have the chance to win only the second FA Cup Final in their history next month.