Luton saw their lead at the top of League One cut to five points after Barnsley could only pick up a 0-0 draw at home to Burton Albion last night.
The Tykes are now level on games with Town, both having played 33, with just 13 matches of the season to go.
Hatters' lead over third place was reduced to nine points as Sunderland enjoyed a 4-2 success over Gillingham at the Stadium of Light.
The Black Cats were drawing 2-2 at half time, after Lee Cattermole and Tom Flanagan's goals were cancelled out by Tom Eaves and Brandan Hanlan.
However, further strikes from Will Grigg and Aiden McGeady, both from the penalty spot, saw them leapfrog Portsmouth, with just one game in hand on Town now.
Pompey meanwhile made it seven matches without a win after they were held to their fourth successive draw, 1-1 by Bristol Rovers at Fratton Park.
Jonson Clarke-Harris put the visitors ahead from the spot on eight minutes, before the hosts levelled through James Clarke's own goal on 58.
Clarke-Harris then missed another penalty as it finished all square, Kenny Jackett's side falling to fourth, 10 points behind Luton, with no more games in hand.
This weekend, Barnsley go to Portsmouth in a crucial promotion clash, while Sunderland are at Bristol Rovers, with Charlton in fourth heading to Accrington Stanley and sixth placed Doncaster at Scunthorpe.
Luton host Coventry on Sunday at 12pm, with the match live on Sky.