WALSALL were thrashed 5-1 at Rotherham meaning Pompey moved up a place on goal difference in League One despite losing to Northampton.
The Sadlers conceded four times in the first half.
Skipper Lee Frecklington netted a hat-trick for Rotherham.
Winger Jon Taylor, who was also in excellent form, netted twice.
Shrewsbury moved three points clear at the top of after beating Southend 1-0.
Jon Nolan’s goal midway through the first half means Paul Hurst’s side have now won six and drawn the other of their seven league games this season.
Paul Cook’s Wigan enjoyed a convincing 3-0 victory over Charlton at The Valley.
Gavin Massey netted twice and Sam Morsy also netted as the Latics moved up to sixth, with Charlton falling to third.
AFC Wimbledon and 10-man Gillingham shared the spoils in a 1-1 draw which dropped the winless Gills to the foot of the League One table.
With half an hour on the clock, the Dons did take the lead in fortuitous circumstances through Andy Barcham.
The winger swung in a cross in from the left flank meant for Gabriel Zakuani that tucked into the bottom right-hand corner of the net.
Lee Martin was red-carded but Sean Clare equalised before half-time.
Blackpool won 3-1 at Plymouth and Rochdale saw off Doncaster 2-1.
Oxford and Bradford drew 2-2, while Blackburn earned a 1-0 win at Scunthorpe.
Former Pompey loan striker Eoin Doyle scored a late winner as Oldham beat Bristol Rovers 3-2.