Grimsby retained fourth place in the Conference Premier with victory over fellow promotion chasers Barnet.
Ross Hannah bagged the opener by smashing a half-volley into the top corner from the edge of the box.
Liam Hearn added the second with a simple right-footed finish after Andy Cook skipped into the box and unselfishly squared to him.
Dave Stephens fired in a stunning volley from 25 yards to halve the deficit, but the Mariners held on.
VIEW FROM THE DRESSING ROOM
Grimsby Town manager Paul Hurst told BBC Radio Humberside:
"The players deserve loads of credit.
"We had a tough run in terms of the amount of effort we have had to put into games recently
"At half-time I said Portsmouth would knock the ball around and I spoke about the patience we would need.
"I thought more than any team we have played it would be a very different game at it was."
Grimsby Town 13 McKeown 02 Hatton 12 McDonald 03 Thomas 05 Pearson Booked 08 Disley 04 Kerr 23 Rodman 26 McLaughlin 17 Hannah (Colbeck - 75' ) 14 John-Lewis (Cook - 75' ) Substitutes 07 Colbeck 09 Cook 11 Neilson 10 Hearn (Colbeck - 96' ) 15 Bignot Barnet 29 Stack 30 Stephens 03 Johnson 06 Saville Booked 19 Villa López 15 Cadogan 14 Abdullah (Gambin - 77' ) 01 Davids 02 Yiadom 04 Weston 21 Sykes (Nurse - 69' ) Substitutes 13 Jupp 08 Byrne 28 Nurse 39 Fletcher 11 Gambin
Ref: Peter Banks