Pompey’s travelling army of more than 1,600 vocal fans were in the mood to have a party but the hosts took just six minutes to take the lead.
Jon Taylor delivered a corner from the left and central defender Connor Goldson rose highest to power home a header for his first Football League goal.
The Shrews thought they had doubled their advantage when Tom Bradshaw tapped in after goalkeeper Simon Eastwood failed to hold a Taylor shot only for the striker to be flagged offside.
But the second goal did arrive in the 37th minute when Bradshaw was brought down for a free-kick. Skipper Joe Jacobson took it and his shot from 20 yards went in via a notable deflection.
Shrewsbury increased their lead seven minutes into the second half when Dutch striker Akwasi Asante, on loan from Birmingham, fired home on the turn – again with the aid of a slight deflection.
Pompey then rallied and Ashley Harris tapped in after Chris Weale was unable to hold on to a Jed Wallace effort.
And the comeback really looked on 12 minutes from time when the lively Wallace turned provider once again, crossing for Patrick Agyemang to turn home.