Peterborough slipped six points behind Pompey in the League One title race.
The Posh fell to a 1-0 home defeat to Accrington as Sean McConville's 11th-minute strike earned the visitors a fourth consecutive league win.
That moved Stanley up to fourth, level on points with Sunderland who sit third after a 2-0 victory at Shrewsbury.
The Black Cats were gifted the lead through a 58th-minute own goal from Omar Beckles and Luke O'Nien made sure in the 84th minute.
Sunderland move on to 26 points, one behind second-placed Peterborough with a game in hand.
Barnsley dropped to fifth after an unlucky 2-0 defeat at Charlton. The Tykes bossed possession and had more chances than their hosts, but failed to capitalise and were undone by a Karlan Grant double.
Doncaster lost ground on the leaders with a dramatic 3-3 draw against Gillingham.
Barry Fuller fired the visitors ahead after just seven minutes from outside the area and it was 2-0 after 25 minutes when Tom Eaves found the bottom right-hand corner.
Doncaster drew level in the second half as John Marquis finished from close range in the 52nd minute before Mallik Wilks levelled 15 minutes later.
Max Ehmer thought he had won it for Gillingham with an 88th minute strike but Paul Taylor scored a stoppage-time equaliser.
Luton moved to within three points of the top six with a 2-0 win over Walsall with goals in either half from Glen Rea and Jorge Grant.
Craig Mackail-Smith's stoppage-time winner saw Wycombe complete a dramatic turnaround to beat Scunthorpe 3-2 – despite finishing the match with 10 men following the dismissal of goalkeeper Ryan Allsop with nine minutes left.
The visitors were 2-0 up inside seven minutes through Ryan Colclough and Stephen Humphrys, but Dominic Gape cut the deficit before Fred Onyedinma curled home a fine equaliser.
Burton's wait for a first away win of the season ended with a 3-2 victory at basement side Plymouth as defender Kyle McFadzean scored twice.
McFadzean's 19th-minute header cancelled out Freddie Ladapo's early strike, but Ladapo had Plymouth back in front 10 minutes later when he punished a poor back pass from Stephen Quinn.
Burton needed only four minutes to level through captain Lucas Atkins, and McFadzean won it with six minutes left.
Blackpool may sit down in 13th place but their unbeaten run in League One now stands at 10 games after a 2-0 victory over AFC Wimbledon.
The goals came at either end of the match with Curtis Tilt scoring the first in the seventh minute and Marc Bola making sure six minutes from time.
Jodi Jones' stoppage-time winner moved Coventry up to 10th with a 2-1 away win over the 10 men of Southend.
Jones fired in the winner a little over 10 minutes after Simon Cox saw red for the hosts. Tom Hopper had levelled for Southend to cancel out Jordi Hiwula's 20th minute strike.
A late brace from Ian Henderson – both from the penalty spot – saw Rochdale win 2-0 away to struggling Bradford.
Bristol Rovers and Oxford played out a goalless draw which keeps both teams looking over their shoulders near the foot of the table.