Liam Trotter scored his fifth goal of the season as Millwall extended their unbeaten run to five games with a fiercely fought draw in a pulsating Boxing Day encounter at Fratton Park.
Trotter marked his return to the team following injury with a headed goal on 26 minutes after Alan Dunne's drive had been parried by home keeper Jamie Ashdown.
But Pompey responded with a bizarre second-half equaliser, eventually headed home by Dave Nugent after Liam Lawrence's wayward shot was flicked into his path by Dave Kitson.
"A draw was just about the fairest result," said Kenny. "We had the better of the first half and deservedly went in front, but they came at us as we expected they would in the second half and we didn't really handle that well.
Having said that Portsmouth have a lot of quality players and we created a lot of good chances against them."
On the balance of play The Lions could feel a little frustrated that they came away from the south coast with one point instead of all three in a game that was a great advertisement for Championship football.
Portsmouth are not the type of team you can sit back against as they have plenty of experience and edge in their attacking armoury.
To their credit, Kenny Jackett's men gave as good as they got in an open, attacking game during which both sides created chances, perhaps Millwall marginally the better of the two.
The team showed three changes from the starting line-up at Swansea 15 days ago and Alan Dunne took over the skipper's armband in the absence of Paul Robinson (hamstring), who was joined on the sidelines by Danny Shittu (hamstring) and Neil Harris (back).
The Lions lined up with a new central defensive partnership of Darren Ward and Tony Craig, whilst Trotter returned to the side following his hamstring injury to play just behind Steve Morison in a 4-4-1-1 formation. Josh McQuoid dropped to a bench that also saw a welcome return for Jack Smith.
Morison certainly got an early welcome from the home team, feeling the force of an awful late lunge on the halfway line by Pompey captain Aaron Mokoena with just 78 seconds on the clock - a foul rightly earning the defender a yellow card.
Just two minutes later a long kick from keeper David Forde was knocked on by Trotter to Morison. He in turn laid the ball off to James Henry, whose left-foot effort forced Jamie Ashdown into a save low to his right. The keeper couldn't keep a hold of the ball, but he did brilliantly to block Jason Puncheon's follow-up.
At the other end a great piece of defensive covering work by Tamika Mkandawire averted the danger as the lively Liam Lawrence broke clear on goal.
The Lions' back four was threatened again on 14 minutes, and on this occasion it took a sprawling save by stopper David Forde to deny John Utaka after he was played clean through on goal.
Herman Hreidarsson then headed a Lawrence corner wide of the target as Portsmouth enjoyed a spell of pressure.
But it was Millwall who worked their way back into the game and in fact went closest to breaking the deadlock after 22 minutes. Dunne, Morison and Henry combined on the right with Morison slipping the ball through to Trotter. His smart turn with his back to goal bamboozled Mokoena, but as Ashdown advanced Trotter tried to lift the ball over the advancing keeper, and a slight touch took it onto the bar. The ball fell invitingly for Henry, but he blasted the loose ball wildly into the side netting.
But Jackett's men didn't have long to wait before breaking the deadlock, edging ahead on the 26th minute.
Puncheon picked out Dunne, overlapping again on the right, and when his rasping drive was parried by Ashdown there was Trotter to perfectly place his header into the back of the net.
Right-back Dunne, clearly revelling in his role as captain, could have added a second just past the half-hour mark, bursting forward with another powerful run and shot that was palmed clear for a corner.
Henry then had a drive blocked by keeper Ashdown 10 minutes before the break, and although the keeper again spilled the effort, Trotter's shot was blocked before the ball bounced his way, but got stuck under Trotter who couldn't work an opening to have a second stab.
The Lions were by now in their element and they nearly grabbed a second just before the break.
The tireless Puncheon won possession deep in his own half and played a superb forward pass to pick out Morison, but on this occasion Ashdown narrowed the angle sufficiently to block the striker's effort and the chance was gone.
Portsmouth came flying out of the traps after the break and within 15 seconds of the restart should have levelled when Lawrence set up Brown in space, but his stinging drive was deflected for a corner by Craig.
Forde then produced a world-class save to block Brown's thunderous close-range shot and although Nugent slotted the loose ball home, the linesman's flag ruled the Pompey man off-side and The Lions could breathe again.
In a pulsating opening period Puncheon then intercepted Brown's square pass, burst forward and spotted Morison charging into the penalty area, but the Millwall striker screwed his effort high and wide from 12 yards.
The Lions rode their luck again on 66 minutes when Kitson spun past Ward and with Forde standing between him and goal slory, steered wide to the agony of the home supporters and relief of Millwall's 1,300 travelling fans.
It was Pompey's turn to thank lady luck following an almighty 60th-minute goalmouth scramble that eventually saw Joel Ward poke the ball off the line under pressure from Morison and Mkandawire after Henry's initial low shot had been deflected.
The teams continued to trade scoring opportunties; Hayden Mullins clipping the outside of the upright with a first-time shot and Puncheon's left-foot thunderbolt fizzing narrowly wide for Millwall at the other end.
But it was Portsmouth who hauled themselves level with a somewhat fortuitous goal.
Lawrence's corner on the left was half-cleared, the ball fell into his path and his misshit shot looked to be going wide until Kitson stole in at to head back across goal and Nugent glanced home.
With the Fratton Park faithful finding their voices and Millwall on the back foot this was a real test for Jackett's men, but they handled themselves superbly, kept their shape and composure and made sure that they stood their ground.
In fact it took a superb reflex save from Ashdown to deny Morison whilst Forde did well to anticipate the danger and raced off his line to intercept Brown's low cross.
Puncheon dragged a low effort wide as The Lions continued to threaten, but that second goal just wouldn't come for either Jackett's men or Pompey, who pressed hard for a winner in the five minutes of injury time, but could not find a way through a resolute visiting rearguard.
Portsmouth: Ashdown, Mokoena, Hreidarsson (Sonko, 65mins), Lawrence, Mullins, Nugent, Brown, Utaka, Kitson (Kanu, 89mins), J.Ward, Rocha (Dickinson, 65mins). Subs not used: Flahavan, Ciftci.
Bookings: Mokoena (2mins), Hreidarsson (54mins), Rocha (64mins)
Millwall: Forde, Dunne, Barron, Abdou, Ward, Craig, Puncheon, Mkandwire, Trotter, Morison, Henry (Schofield, 81mins). Subs not used: Mildenhall, Hackett, Smith, Laird, McQuoid, Marquis.
Bookings: Trotter (43mins), Dunne (70mins), Barron (79mins)
Scorer: Trotter (26mins)
Ref: D Phillips
Att: 17,521 (away