Jermain Defoe scored twice for FA Cup favourites Portsmouth to dent Birmingham City's battle against Barclays Premier League relegation.
Defoe scored a penalty and tap-in in the first eight minutes to make it four in all for his new club, but Fabrice Muamba came up with an instant reply before Sebastian Larsson's cracking free-kick five minutes from the break levelled the scores.
But Hermann Hreidarsson's close-range strike put Pompey's noses back in front. And Kanu, on as a substitute, polished off Birmingham's four-match unbeaten run with a diving header from a Pedro Mendes cross right at the end.
Defoe had to wait only six minutes for the ideal chance from the penalty spot which he confidently tucked away after defender David Murphy clearly handled a cross by Milan Baros.
Liam Ridgewell's miskick put the on-loan Baros in possession and the Czech Republic star's clip inside bounced off Murphy's arm, leaving referee Steve Tanner no option but to point to the spot.
Two minutes more and Defoe had his second of the match and fourth for Pompey after Maik Taylor could only palm away a long shot by Sulley Muntari and repeat the feat with Baros's follow-up.
Defoe slid in on the loose ball to toe it over the line and send the home crowd into raptures with his fifth goal in five matches.
But Birmingham awoke from this stunning start with a goal of their own - making it three in the first nine minutes.
lurked dangerously
Ridgewell went forward to nod on a corner by Sebastian Larsson, whose former Arsenal reserves team-mate Fabrice Muamba reacted quickest to stab a shot past David James.
Taylor stopped Birmingham slipping two goals behind again when he kept out Papa Bouba Diop's long-range strike just after the quarter-hour mark.
Mikael Forssell, Birmingham's hat-trick hero against Tottenham Hotspur, could not find the required service playing off the compact Zarate - and there were a few signs of uncertainty at the back from the visitors in the swirling wind.
But Hreidarsson had to be precise when guiding a 31st-minute long ball forward by Gary McSheffrey - playing wide on the left of midfield - back into the arms of the advancing James as Forssell lurked dangerously on the edge of the box.
Pompey won a free-kick a minute later and Taylor had to dive behind a screen of players to touch Muntari's curling 25-yard effort away for a corner.
And Larsson levelled the scores after 40 minutes when he netted his fifth goal of the season with a superb free-kick from 20 yards which curled away from James' groping right hand.
Pompey were back in front just four minutes after the break with left-back Hreidarsson netting his third goal of the season.
Muntari dropped in another free-kick from deep on the right, one of his specialities, and although the giant Diop made his presence felt in the goalmouth, Ridgewell should really have cleared the ball away instead of allowing Hreidarsson to poke home.
quick succession
McSheffrey and Forssell had shots blocked in quick succession as Sylvain Distin's poor clearance allowed Larsson to cross from the right, but neither effort penetrated as far as James.
McSheffrey cut in from the left and saw his drive blocked before Birmingham manager McLeish brought on McFadden for Zarate just after the hour.
The home fans were calling for Diarra and they got their wish a minute later when the former Chelsea and Arsenal man replaced Diop.
Good running by Baros set up the next chance for Niko Kranjcar, whose low shot was saved by Taylor.
Birmingham had enough possession to keep alive hopes of another comeback and Pompey were stretched clearing a couple of free-kicks and a corner on the left by McSheffrey, who kept his deliveries low.
It was Birmingham substitute Cameron Jerome who went closest to an equaliser five minutes after replacing Forssell.
But the newcomer's instant half-volley from Larsson's cross demanded a fine save from James who tipped it around a post.
Muntari was just off the mark with another long-range shot for Pompey before substitute Kanu wrapped it up in stoppage time, heading in a Pedro Mendes cross.