Bolton guaranteed themselves a place in next season's Uefa Cup after El-Hadji Diouf's strike earned them a point.
The visitors had the better of the first half and Diouf pounced on poor defending to fire past Jamie Ashdown.
Jussi Jaaskelainen parried Giannis Skopelitis' drive soon after the break but Bolton continued to look lively.
Substitute Kevin Nolan hit the post before Portsmouth snatched an unlikely draw when Gary O'Neil's free-kick was scrambled home by Yakubu.
With Portsmouth safe from relegation, winning was of greater significance to Bolton's European ambitions - and it showed.
While the visitors caused problems with their direct and incisive passing, Pompey appeared to be going through the motions.
It was no surprise when Diouf, who was booed throughout by home fans for spitting at Arjan de Zeuw in November, profited from confusion between Valery Mezague and De Zeuw to make it 1-0.
Portsmouth failed to produce anything approaching a meaningful effort on goal apart from O'Neil's 30-yard free-kick which Jaaskelainen tipped over, although it appeared to be too high anyway.
They came closer to an equaliser after the interval when Skopelitis powered in a drive which Jaaskelainen parried.
Bolton were still looking comfortable and unnerving the home side with their expertise at set-pieces.
And Portsmouth were fortunate to be only one down when Nolan hammered a shot against the post from close in after a Fernando Hierro free-kick.
But the visitors were given a dose of their own medicine when O'Neil's curling free-kick went in off Yakubu's face.
Diouf's temper was put to the test in the second half and the afternoon turned sour for him when he was cautioned after a wild challenge on Matthew Taylor.
Sam Allardyce immediately replaced him with Henrik Pedersen and his team saw out the rest of the game for the point that makes sure they are certain to finish no worse than seventh in the table, meaning a place in Europe for the first time.
Portsmouth manager Alain Perrin on the expected transfer activity at Fratton Park:
"We want to keep Yakubu for next season. He is our best striker but it could be difficult to refuse offers for him and sometimes the player wants to move away.
"A lot depends on which players leave the club but we need a new defender, midfielder and striker. We need to improve the team.
"We will have some discussions with clubs to get in players on long loans but it's too early to talk about that."
Bolton assistant manager Phil Brown:
"We came with a gameplan and it's job done because a point was good enough to get us into Europe.
"It's vitally important we make the deal for El-Hadji Diouf permanent because the more players we have like him the better we will do in Europe.
"It's a great achievemnt for the club and for everyone concerned, it's the biggest goal we could have set out to achieve and we've done it."
Portsmouth: Ashdown, Primus, De Zeeuw, Stefanovic, Taylor, Mezague (Cisse 77), O'Neil, Skopelitis (Keene 60), Hughes, Yakubu, Kamara (Fuller 60).
Subs Not Used: Hislop, Rodic.
Goals: Yakubu 72.
Bolton: Jaaskelainen, Candela (Jaidi 76), N'Gotty, Ben Haim, Gardner, Hierro, Giannakopoulos (Nolan 55), Okocha, Speed, Diouf (Pedersen 84), Davies.
Subs Not Used: Poole, Fadiga.
Booked: Gardner, Diouf.
Goals: Diouf 11.
Ref: M Messias (S Yorkshire)