Blackburn grabbed the early ascendancy, with Christopher Samba heading David Bentley's corner over the top when unmarked.
But they did not have to wait long to break the deadlock when McCarthy was left unmarked to slide home Mokoena's cross from eight yards.
Blackburn suffered a serious blow after 26 minutes when Mokoena, who had just come back on after treatment, suddenly collapsed grabbing his leg and a stretcher was summoned.
Boss Mark Hughes had to make another change eight minutes before the interval when Bentley, who had been doubtful before kick-off, was replaced by Matt Derbyshire.
Portsmouth counterpart Harry Redknapp made a double change at the interval to try and inject life into his side, sending on Matt Taylor and Nugent for Noe Pamarot and Papa Bouba Diop.
But Nugent - who has had a miserable time since his £6m move from Preston - was guilty of a dreadful miss, heading wide from only a couple of yards with the goal at his mercy.
Blackburn hit back as they went for the crucial second goal, and Samba struck a powerful drive that was turned over the top by David James.
And the visitors did seal the victory with 13 minutes left when Pedersen stole in to score from six yards.
Kanu headed home in the dying seconds, but Blackburn hung on for the victory.
Portsmouth manager Harry Redknapp: "We couldn't get to grips with the first half and although we were on top in the second we needed to score early to get back in it.
"We let in two poor goals and missed some chances as well. It's a shame because I would have loved a cup run.
"We lost to a good side. Blackburn are on a good run like ourselves."
Blackburn manager Mark Hughes: "I thought Benni McCarthy was absolutely magnificent.
"I took a lot of pleasure watching him. His retention of the ball and his work in tight areas was a joy to watch.
"He was always in there looking for scoring chances. He's back where he should be at."
Bookmark with:
What are these?