The midfielder had already provided three assists in the first couple of games, but managed to open his account at the Milton End to send the hosts to the summit.
There was a welcome return to Fratton Park for Shrews boss Steve Cotterill following his spell in intensive care with Covid-19 last term.
And his side certainly provided tough opposition, but could not find a way through to seriously test Gavin Bazunu between the sticks.
Danny Cowley stuck with the same side that had played so well in their victory over Crewe at the weekend.
The ground was noticeably fuller than the weekend and the crowd were in fine voice when the action got underway.
But some had barely settled into their seats by the time the deadlock was broken after just 120 seconds.
The visitors struggled to deal with some nice passing play between Marcus Harness and TUNNICLIFFE, with the latter neatly slotting the ball into the bottom corner.
Shrewsbury had an instant chance to level, with Bazunu getting down to his left to deny Elliott Bennett and Tom Bloxham blazing the loose ball over.
It was an entertaining contest and a mis-hit forward pass from Tunnicliffe almost looped over Shrews keeper Marko Maroši, who just about managed to pluck it from the air.
A long-range effort from Reeco Hackett-Fairchild was then deflected wide after the young forward had been teed-up by a neat Harness flick.
But it was certainly not one-way traffic and the visitors enjoyed plenty of joy going forward, without being able to test Bazunu.
A Shaun Williams corner caused problems at the other end, but a touch in the box from Clark Robertson allowed Matthew Pennington to make a vital block.
Shrewsbury Town 0
There were two changes before the action restarted, with Harness not emerging from the tunnel and being replaced by Gassan Ahadme.
Robertson initially came out onto the pitch, but was withdrawn for Connor Ogilvie, suggesting he might have picked up a knock.
It was the visitors that made the stronger start to the half, with Bazunu getting down to tip Luke Leahy’s bobbling effort around the post.
And the wide player then hit a dangerous delivery across the face of goal that none of his team-mates could connect with.
Ronan Curtis sent a superb cross into the box at the other end and it deserved a converting touch, but Hackett-Fairchild could not quite get there at the back post.
Both sides were looking capable of adding to the scoring and Bazunu was soon called into action to deal with a Josh Vela drive from the edge of the box.
Pennington then bravely put his head in front of Gassan to deal with a Hackett-Fairchild centre, with both players getting nasty cuts in the process.
Hackett-Fairchild had a chance to double the hosts’ lead when the action restarted, but dragged his shot wide after the ball was laid off by Gassan.
Shrewsbury poured forward in the closing stages, though, and almost had a leveller, only for Aaron Pierre’s firm header to be kept out by Bazunu.
The visitors were buoyed by a display of eight additional minutes, but the Blues saw them out to claim top spot.
Pompey (4-2-3-1): Bazunu; Freeman, Raggett, Robertson (c) (Ogilvie 46), Brown; Tunnicliffe, Williams; Harness (Gassan 46), Hackett-Fairchild, Curtis; Marquis (Harrison 90+4)
Goals: Tunnicliffe 3
Subs not used: Bass, Morrell, Jacobs, Hirst
Shrewsbury (4-2-3-1): Maroši; Daniels (Ogbeta 84), Pennington, Pierre, Nurse; Bennett (c), Vela; Bloxham (Pyke 62), Udoh, Leahy; Cosgrove
Subs not used: Burgoyne, Gregory, Davis, Caton
Referee: Trevor Kettle
Attendance: 14,471 (259 away fans)