Ipswich Town came out on top in a topsy-turvy contest with Portsmouth at Portman Road.

In front of a crowd of more than 28,000, the Blues twice played themselves into the lead as Marcus Harness (25) and then Freddie Ladapo (74) hit the net in a hotly-contested game between two League One promotion contenders.

But twice they were pegged back, as Luke Woolfenden and skipper Sam Morsy gave away penalties which Colby Bishop converted (32 & 79) to level matters.

Then it was Wes Burns’ turn to make his impact on the game, as the Welshman returned from international duty to head home (80) after substitute Kyle Edwards’ cross had looped up and into danger on the Portsmouth goalline.

Town were able to hold their lead this time, though, as the hosts claimed a victory which ends Portsmouth’s unbeaten start to the league season and sees Kieran McKenna’s men go clear in second place, a point behind leaders Plymouth.

Next up is Tuesday night’s rearranged home clash with Cambridge United.

Following Town’s loss at Plymouth a week ago, McKenna made two changes to his starting XI, with Burns returning from international and slotting back into the side in place of Kayden Jackson on the right flank.

There was a change up top, too, with Tyreece John-Jules lining up as the central striker as Ladapo dropped to the bench.

Town’s start was extremely patient as they showed few signs of suffering on the big stage, as McKenna’s side kept the ball and calmed things down before beginning to find their groove.

Playing against a 4-4-2, Ipswich tried to stretch the visitors and make use of the extra man they created for themselves in attacking areas, as a flurry of chances came and went as the hosts tested Portsmouth with balls into the box.

First, John-Jules looked to lever an effort towards goal which deflected off both Pompey centre-halves and behind from a corner, from which Conor Chaplin rattled the post from inside the box as Luke Woolfenden was screaming for a penalty as he called for a foul as he looked to keep the ball alive.

George Edmundson then connected with a corner, with a header which Pompey keeper Josh Griffiths was able to clutch, before a rare threatening moment from the visitors saw teenage Tottenham loanee Dane Scarlett lash well wide from range.

Janoi Donacien was required to make a well-timed headed clearance and an excellent block on Josh Koroma’s shot as the visitors pressed, before Leif Davis had a shot deflected up and over the bar, but the Blues soon deservedly ahead.

John-Jules worked hard to try and win the ball in the middle of midfield before it fell nicely for Chaplin, who drove into Pompey territory and played a nicely-weighted ball for Harness, who had found himself in plenty and maintained his composure to expertly slot past Griffiths.

The former Portsmouth man celebrated respectfully against his former club, but the jubilation didn’t last long before the visitors found themselves level.

One lapse in concentration cost Ipswich, as the previously-excellent Woolfenden allowed Scarlett to get the wrong side of him on the edge of the box, leaving Christian Walton no option but to rush out and try and stop the forward’s run. The Town keeper brought the youngster down and was booked for his troubles, before picking Bishop’s penalty out of the net.

The Ipswich lead lasted only seven minutes but the Blues set about trying to regain their advantage before the break, with two clever touches from Chaplin in the middle of the pitch switching the ball out to the right for Burns, who then saw a driven shot pushed away by Griffiths.

Town were applauded off at the break but needed to be switched on at the start of the second half, as Leif Davis gave away a free-kick which Walton needed to watch all the way, as he palmed Marlon Pack’s swerving shot to safety.

The contest, just as it did when these two sides met in March, began to descend into a scrappy affair in which the visitors appeared happy with their point and Ipswich struggled to get things going as they looked to turn theirs into the three they so craved.

Then, just as things were feeling flat, McKenna’s substitutes made an impact from the bench.

Kyle Edwards and Ladapo came on for John-Jules and Harness and, with his first touch, striker Ladapo produced a superb left-footed finish into the top corner as he met Davis’s low cross to send Portman Road wild.

But, again, the lead was short-lived as a second penalty, given for a Morsy foul on Ronan Curtis, saw Bishop slot past Walton once again.

Edwards then made his impact as he skuttled his way to the byline and sent in a cross which was deflected up in the air, before Burns arrived to beat the Portsmouth defenders to the ball and head home on the line.

Town held their lead at the third time of asking, meaning the bumper home crowd went away happy.

IPSWICH TOWN (4-2-3-1): Walton; Donacien, Woolfenden, Edmundson, Davis (Vincent-Young 90+); Evans, Morsy (cpt); Burns, Chaplin (Ball 82), Harness (Edwards 73); John-Jules (Ladapo 73).

Subs: Hladky, Keogh, Jackson.

Booked: Walton (35).

PORTSMOUTH (4-4-2): Griffiths; Ogilvie, Morrison (Hackett 87), Raggett, Robertson; Dale (Jacobs 89), Morrell (Tunnicliffe 66), Pack, Koroma (Curtis 66); Bishop, Scarlett.

Subs: Oluwayemi, Swanson, Mingi.

Booked: Scarlett (11).

Referee: Charles Breakspear.

Attendance: 28,434 (1,941).