Match ends, Shrewsbury Town 1, Portsmouth 2.
Ten-man Portsmouth climbed into the League One play-off places with a gutsy victory at Shrewsbury.
Marcus Harness and John Marquis, who was later sent off, put Pompey 2-0 up before Nathaniel Ogbeta netted in the second half for the hosts.
Aside from an early Daniel Udoh chance the first half was dominated by the visitors.
Ryan Williams went close with a header before a superb curling Harness effort broke the deadlock midway through the half.
Ten minutes later it was two when Marquis tapped into an empty net, with Danny Cowley's side looking in complete control.
But six minutes after the restart Shrewsbury were back in the game when Ogbeta took on three players before firing the ball home past keeper Craig MacGillivray.
Pompey were reduced to 10 men 22 minutes from time, when Marquis received a straight red card for a heavy tackle on Harry Chapman.
But Shrewsbury failed to capitalise on their man advantage as Pompey kept them at arms length to make it two wins from two under new boss Cowley.
Match report supplied by PA Media.
- 29PenningtonSubstituted forPykeat 82'minutes
- 12SearsSubstituted forChapmanat 45'minutes
- 6GossSubstituted forEdwardsat 69'minutes
- 23UdohSubstituted forWhalleyat 69'minutes
- 8CloseSubstituted forDanielsat 84'minutes
- 7WilliamsSubstituted forNicolaisenat 90+5'minutes
- 24JacobsSubstituted forCannonat 75'minutes
- 9MarquisBooked at 68mins
- Ben Speedie
- Shots on Target
Second Half ends, Shrewsbury Town 1, Portsmouth 2.
Tom Naylor (Portsmouth) wins a free kick in the attacking half.
Foul by Curtis Main (Shrewsbury Town).
Rasmus Nicolaisen (Portsmouth) wins a free kick in the defensive half.
Foul by Rekeil Pyke (Shrewsbury Town).
Substitution, Portsmouth. Rasmus Nicolaisen replaces Ryan Williams.
Tom Naylor (Portsmouth) wins a free kick in the defensive half.
Foul by David Davis (Shrewsbury Town).
Attempt blocked. Curtis Main (Shrewsbury Town) left footed shot from the centre of the box is blocked. Assisted by David Davis.
Attempt missed. Rekeil Pyke (Shrewsbury Town) header from the centre of the box is high and wide to the right. Assisted by Harry Chapman.
Offside, Shrewsbury Town. Josh Vela tries a through ball, but Rekeil Pyke is caught offside.
Andrew Cannon (Portsmouth) wins a free kick in the attacking half.
Foul by Josh Vela (Shrewsbury Town).
Foul by Callum Johnson (Portsmouth).
Shaun Whalley (Shrewsbury Town) wins a free kick in the attacking half.
Substitution, Portsmouth. Charlie Daniels replaces Ben Close.
Foul by Ryan Williams (Portsmouth).
Harry Chapman (Shrewsbury Town) wins a free kick in the defensive half.
Substitution, Shrewsbury Town. Rekeil Pyke replaces Matthew Pennington.