The goal from Kanu, who scored against the same opponents in the 2008 FA Cup final, was the least they deserved after a stirring second-half performance on Saturday.
Both sides struggled to create any clear openings in the early exchanges.
The first chance fell to Cardiff’s Darcy Blake – the only change from last week’s draw with Burnley after his impressive showing in the Carling Cup – but his left-footed drive from Craig Conway’s cross hit the post.
The home side were inches away from going ahead after 22 minutes through Joel Ward – one of two changes from last week’s stalemate with Bristol City. His rasping effort beat David Marshall in the Cardiff goal but crashed back off the bar.
It was Cardiff’s Rob Earnshaw who forced the first save of the afternoon on 28 minutes when he advanced into the area but Jamie Ashdown was out quickly and made a wonderful save to tip the effort wide.
The Wales international should have broken the deadlock two minutes later when he latched onto the ball after Ward’s slip, but he fired wide from close range.
Steve Cotterill’s side were agonisingly close to taking the lead within two minutes of the restart. Liam Lawrence rolled the ball into the path of Greg Halford but his thunderous 25-yard effort bounced back off the post to safety with Marshall well beaten.
Cardiff pressed forward and created a chance of their own after 56 minutes when Don Cowie crossed for Peter Whittingham but he could only direct his header over the bar.
But it was Portsmouth who looked more likely to score as the game went into the later stages. First, Halford met a corner from Lawrence but his header was cleared off the line by Earnshaw on 63 minutes. A mass goalmouth scramble followed but Pompey could not force the ball home despite the best efforts of Dave Kitson, who saw his shot parried by Marshall.
Minutes later, Portsmouth looked certain to score. David Norris headed a Halford throw-in into the path of Benjani, but the substitute was thwarted by a crucial last-ditch tackle from Whittingham.
The Bluebirds made them pay with 20 minutes to go when Andrew Taylor gave Cardiff the lead. The defender’s overlapping run was found by an inch-perfect pass from Conway and he drilled the ball into the bottom corner.
But Portsmouth deservedly hit back with 10 minutes remaining, when Kanu stooped to head in Tal Ben-Haim’s cross. The Nigerian had been on the pitch for only five minutes.
Portsmouth poured forward to force a winner and went close in stoppage time but Anthony Gerrard twice blocked shots from Kitson.