Ayunga scored from close range after Gavin Bazanu had failed to deal with Greg Leigh’s corner and could only palm the ball into the substitute’s path.
His loyalty looked to pay dividends as they dominated the game for long periods.
The Shrimps always looked dangerous on the counter and Dylan Connolly was the first to go close when he curled an effort inches wide from the edge of the area.
Pompey keeper Bazanu then stood between the Shrimps and an opener with a string of fine saves.
His best came from a sweetly-struck Arthur Gnahoua shot that he turned onto the post before saving twice in quick succession from Cole Stockton, who looked sure to put Morecambe in front after racing onto a rebound.
The Shrimps were undone, however, four minutes before the break as Sean Raggett scored with a fine volley on the turn to beat Trevor Carson from eight yards.
Adams’ players continued to look the more threatening in the second half but were almost undone on the break as George Hirst twice went close for Pompey.
The Shrimps stuck at it, however, and went close as Bazanu clearances hit Gnahoua and Adam Phillips – but the rebounds went the wrong side of the posts.
Both Phillips and Stockton wasted great chances but Morecambe's pressing paid off three minutes into injury time.
Bazanu failed to deal with Leigh’s corner and Ayunga bundled the ball home from close range to earn the Shrimps a deserved – and potentially vital – point with two matches of the season remaining.
Morecambe: Carson, Leigh, Bennett, Bedeau, Gibson, Fane (McCalmont 77), Connolly (Diagouraga 68), Phillips, Wildig (Ayunga 60), Gnahoua, Stockton. Subs not used: Smith, Cooney, O’Connor, McLoughlin.
Portsmouth: Bazunu, Carter, Raggett, Robertson, Ogilvie, Tunnicliffe, Williams (Thompson 63), Harness (Romeo 72), Curtis, Jacobs (O’Brien 64), Hirst.
Subs not used: Webber, Vincent, Mingi, Walker.
Referee: Robert Madley.