Pompey bagged a first League One win in nine attempts to get their promotion bid back on track with a thumping 5-1 win over Bradford.
Ben Close bagged a double, while Gareth Evans, Tom Naylor and Jamal Lowe all struck to keep the Blues in fourth, although they still remain five points off the top two.
Second-placed Barnsley secured a 3-0 win at Southend – despite seeing Jacob Brown sent off on 35 minutes.
The Tykes rallied in the second half, with Cameron McGeehan, former Fulham forward Cauley Woodrow and Jordan Green all netting to keep them in the automatic promotion places.
Sunderland, sitting in third, kept a three-point cushion over Pompey after beating Plymouth 2-0 at the Stadium of Light.
Efforts in each half from Lee Cattermole and George Honeyman were enough for the Black Cats, who could climb above Barnsley and into the top two should they win their game in hand.
Meanwhile, leaders Luton remain five points clear at the summit after they saw off Rochdale.
Second-half strikes from Danny Hylton and James Collins – recently touted for a Republic of Ireland call-up – wrapped up a 2-0 victory at Kenilworth Road.
Dale had Ethan Hamilton dismissed five minutes from time when trailing 1-0.
Charlton were held to a 1-1 draw at Doncaster to leave them five points off Pompey in fifth.
The points for Donny kept them in the division’s final play-off place.