Pompey finished 2017 on a high as they battled from behind to beat Northampton and climb into the play-off places.
They started poorly, but moved through the gears after Chris Long had put the struggling visitors ahead.
Matty Kennedy and Oliver Hawkins both struck in the space of a few minutes just before the interval.
Hawkins added a second following the restart and it might have been a greater margin of victory without an impressive display from Matt Ingram between the sticks.
Kenny Jackett made three changes from the side that beat AFC Wimbledon on Boxing Day.
One of them was enforced, with Brandon Haunstrup suffering from a knock and being replaced at left-back by Dion Donohue.
Meanwhile, Jamal Lowe and Conor Chaplin both dropped to the bench to make way for Kennedy and Hawkins.
Pompey had a great chance to open the scoring early on when Brett Pitman slipped a pass through to Hawkins, but Ingram stuck out a foot to make the save.
But the hosts looked well below par for most of the first half, perhaps fatigued by the hectic festive schedule.
Northampton tried to make them pay and Luke McGee was forced to back-pedal when Sam Hoskins tried to lob him.
The keeper then got down quickly to his right to make the save when Matt Grimes had a snap-shot from 35 yards.
And a teasing Brendan Moloney delivery flew past both Matt Clarke and Christian Burgess, although Long was unable to make a connection at the far post.
Pompey were forced to make a substitution on 25 minutes when Danny Rose collected a bizarre injury.
A drop ball was called for after Nathan Thompson received treatment on the pitch and John-Joe O’Toole accidentally kicked the midfielder in the leg in the battle for possession.
He was switched for Adam May, leaving the hosts with an extremely youthful central midfield pairing.
The Cobblers then broke the deadlock when Close lost possession and O’Toole sent a through ball to Long, who coolly slotted the ball past McGee.
But that seemed to spark Pompey into life and they managed to score twice in four minutes to turn the match on its head.
It was a lovely finish from KENNEDY to level, with the winger cutting on to his right foot and drilling a low shot into the bottom corner.
And it was an even better effort from HAWKINS to give the Blues the lead, as the striker rose on the edge of the box to expertly steer a deep Burgess pass over Ingram and into the net.
Northampton Town 1
Gareth Evans had limped off injured just before the break and he was replaced by Lowe before the game restarted.
The hosts were not content with a narrow lead, though, and Kennedy curled a shot narrowly over at the start of the second half.
And Pompey did find themselves further ahead on 48 minutes, as Donohue sent a perfect cross to the far post, where HAWKINS showed plenty of desire to rise above the defence and head home.
It almost got even better after Pitman’s back-heel was blocked, but Close’s follow-up rattled the crossbar.
The Blues were rampant by this point and it was only a string of saves from the overworked Ingram that was limiting the damage.
He did well to keep out an angled Pitman drive before also getting down to save another Hawkins header.
The keeper was also at his best deny Kennedy, while Lowe should at least have found the target after being sent racing through on goal.
There was, unsurprisingly, a bit of a lull following such a frantic opening to the half, although it was still the hosts looking more likely to add to the scoring.
Burgess went close after racing into the box to meet Kennedy’s free-kick and head narrowly wide of the post.
There were to be no more goals, although Pompey had already done enough to secure the points and their place in the top six.
Pompey (4-2-3-1): McGee; Thompson, Burgess, Clark, Donohue; Close, Rose (May 29); Evans (Lowe 46), Pitman (c) (Chaplin 89), Kennedy; Hawkins
Goals: Kennedy 41, Hawkins 45, 48
Booked: Pitman, Kennedy
Subs not used: Bass, Casey, Bennett, Main
Northampton (4-1-2-1-2): Ingram; Moloney, Poole, Taylor, Buchanan (c); Grimes; Crooks, McGugan; O’Toole (Foley 59); Hoskins (Powell 64), Long (Richards 72)
Goals: Long 36
Subs not used: Cornell, Smith, McWilliams, Waters
Referee: Lee Swabey
Attendance: 18,539 (538 away fans)