Debutant Luke Varney grabbed an injury-time equaliser to deny Middlesbrough.
Varney struck two minutes into added time to salvage a point after substitute Christian Dailly's initial effort had been blocked.
Boro led when Marvin Emnes fired in after good work from Scott McDonald but Pompey levelled after the break through a low 20-yard David Norris shot.
Rhys Williams restored the home side's lead with a cool finish but Varney denied them victory on 92 minutes.
Summer signing Varney's strike was cruel on a Boro side who created the better chances in the teeming rain but ultimately paid the price for some wasteful finishing.
Barry Robson twice went close for Boro before Emnes, who this week signed a new three-year contract, showed great composure to put them ahead when he turned neatly and fired home McDonald's clever cut-back.
Emnes then shot just wide while McDonald, Justin Hoyte and Robson also spurned decent openings.
Pompey did threaten through Hayden Mullins just before the break but his shot sailed over the bar.
However, they drew level after the interval when Norris beat Carl Ikeme with a powerful low shot from 20 yards.
Boro hit back when Williams collected a glorious through-ball from Nicky Bailey and finished coolly.
The goal once again led to a spell of home pressure, but the hosts failed to extend their lead and summer signing Varney made them pay.
The draw means Boro have now only won one of their last 11 opening league fixtures - a 2-1 home triumph over Tottenham in August 2008 - while Portsmouth avoided a fourth successive opening-day defeat.