Owen Coyle had demanded the three points that would have guaranteed his side their place in the top flight next season but they are all but safe even with this result thanks to Hull's defeat to Sunderland.
Ivan Klasnic put the Whites in front in the 26th minute and Kevin Davies added a second two minutes later as they looked set for an afternoon stroll.
However, Aruna Dindane scored two second-half goals to end any hopes of a party and earn Portsmouth, already relegated, a share of the spoils.
Bolton had almost taken the lead as early as the fifth minute when Matt Taylor rattled in a free-kick from 25 yards.
It was spilled by England goalkeeper David James and broke to Gary Cahill, just yards out.
However the defender only succeeded in sending his effort against the post and out of play.
The home side maintained the momentum and Taylor's header was parried by James following a clever chip from Davies.
James was being kept busy in the early stages and he did well to block a shot from Klasnic in the ninth minute with Vladimir Weiss supplying the delivery.
Three minutes later Portsmouth launched a counter attack and Jussi Jaaskelainen made a smart reflex save from John Utaka, who soon saw another effort scrambled to safety.
Bolton then burst into life with two goals in the space of two minutes, Klasnic marking his return to the side by opening the scoring with his seventh goal of the season in the 26th minute.
The Croatian flicked a header beyond James after Jack Wilshere, on loan from Arsenal, delivered the cross.
Things got worse for Portsmouth shortly afterwards with Davies sidefooting the ball home after a turn of pace and some clever footwork from Weiss on the right.
Davies immediately embraced his young team-mate, who had thrilled the crowd with that piece of skill.
Portsmouth came close to pulling a goal back a minute into second half but Dindane fired over the bar from a good position.
Back came Bolton and Klasnic released Fabrice Muamba down the left in the 51st minute. Muamba played the ball into the middle and Taylor looked set to score, only for Aaron Mokoena to get a vital deflection.
Portsmouth broke out of their slumber in the 55th minute to reduce the deficit and give themselves a lifeline.
Substitute Frederic Piquionne raced away and with no-one tracking his run Dindane bundled the ball home.
Four minutes later Piquionne's header was pushed away by Jaaskelainen following a cross from Anthony Vanden Borre.
Bolton hit back with Klasnic coming close following good work from Wilshere, then Davies' header was cleared by Tommy Smith.
This was a difficult spellfor the home side, though, and Portsmouth drew level in the 68th minute.
Utaka set up the opening and Dindane scored his second goal of the game from close range.
Bolton were a shadow of the side that had performed so well in the first half and James was hardly being tested.
The home fans were becoming frustrated but a run from deep by Gretar Steinsson in the 88th minute almost paid dividends.
He burst into the area only to see his cross-cum-shot safely gathered by James, then in stoppage-time Davies saw his header come back off the post.