Sunderland saw off Barnsley 4-2 to stay four points behind leaders Pompey in League One.
The home side powered into a 3-1 lead in the first half.
Aiden McGeady scored after 19 minutes and then the highly-rated Josh Maja made it 2-0 a minute later.
Lyden Gooch added the third goal on32 minutes and it looked set to be a rout.
But Barnsley dug in.
Kieffer Moore netted on 41 minutes.
He then grabbed his second on 61 minutes.
Sunderland wrapped up the win with a fourth goal as Luke O’Nien scored in the 83rd minute.
Barnsley are now fifth while Sunderland remain second, four points behind Pompey after Kenny Jackett’s men got the win against Walsall.
Luton have moved up to third position with a 4-0 thrashing of Bradford City who are bottom of the table on goal difference.
James Justin made it 1-0.
Elliot Lee then scored twice and Harry Cornick added the fourth.
Peterborough are fourth after they edged a 1-0 success at home to AFC Wimbledon.
Marcus Maddison scored the only goal of the game on 60 minutes.
Charlton earned a 2-1 win at Burton Albion and they are sixth.
Wycombe won 2-1 at Accrington Stanley and Gillingham won 2-1 at Bristol Rovers.
Fleetwood thumped Coventry 3-0 at home while Doncaster beat Blackpool 2-0 with goals from Herbie Kane and John Marquis.
Shrewsbury piled more pain on visitors Plymouth.
The home side earned a 2-0 success over the lowly Pilgrims.
Oxford beat Pompey’s FA Cup opponents Rochdale 4-2.
Marcus Browne got two goals for Oxford.
Southend saw off Scunthorpe 2-0.