The Lilywhites made it harder than they needed to, going 2-0 ahead with goals early in each half.
Centre-half Chey Dunkley's 57th minute goal brought the home side back into it and North End had to withstand plenty of pressure in the final half hour to see the job through.
Barkhuizen had given PNE a fifth minute lead, finishing off a superb move involving Ben Pearson and Johnson.
It was an advantage they extended two minutes into the second half, Johnson collecting a Barkhuizen pass and firing home.
Dunkley halved the deficit and then it was a case of North End needing to do some serious defending against strong Wigan pressure.
This was a fourth away victory of the season for Alex Neil's men and a fifth successive game on their travels unbeaten.
Pearson was Johnson were at the heart of the win, Pearson getting the man of the match award from Sky Sports who televised the contest live.
Johnson can't have been far behind though, him and Barkhuizen now both on 10 goals for the campaign.
The North End side had shown two changes to the one which drew against Swansea, Andrew Hughes and Sean Maguire replacing Joe Rafferty and Josh Harrop in the side.
Hughes was a straight swap for Rafferty at left-back, the Welshman bringing a natural balance to that side of the defence.
Maguire came in and played as the main striker, Barkhuizen moving to the right-wing with Scott Sinclair on the left and Johnson as the No.10.
The game's first chance fell the way of Wigan, Jamal Lowe escaping the attentions of Darnell Fisher to cut inside and hit a shot across goal which Declan Rudd dived to push past the far post.
PNE went ahead in the fifth minute with a goal of real quality in the build-up.
Sinclair collected possession down the inside left channel and played it short inside to Pearson, his superb pass slicing open the home defence for Johnson to run behind down the left side of the box.
Johnson rolled a low ball across the six-yard box for Barkhuizen to side-foot home at the far post.
Good chances followed to extend the lead, Fisher's 14th minute cross from the right met by Maguire who angled a header towards the far bottom corner.
It looked like it was on its way in before Latics keeper David Marshall dived full length to glove it past the post.
In North End's next attack another fine pass from Pearson played in Sinclair down the right hand side of the box but his angled shot flew across goal and wide.
At the other end a shot from Kieffer Moore was blocked inside the six-yard box by Fisher, while Dunkley sent a header over the bar.
With 24 minutes on the clock, Sinclair's free-kick was blocked the wall - it awarded following a foul on Johnson.
Another free-kick, this time from the right channel, was delivered into the middle by Johnson.
Maguire met it by the far post but looped a header straight at Marshall who saved.
Just beyond the half-hour mark, Moore's acrobatic shot deflected off a Preston boot and behind for a corner.
North End extended their lead a little more than two minutes into the second half, again a fluent build-up behind it.
Patrick Bauer won a tackle in the Preston half, with Barkhuizen taking possession to move up the pitch.
He exchanged passes with Alan Browne before putting over a low cross from the right which found Johnson in the box.
Johnson took a touch and them drilled a low left-foot finish into the bottom corner.
Wigan halved the advantage though, in the 57th minute.
Substitute Joe Gelhardt saw his first cross blocked by Bauer but when it came back to him, the teenager lifted a cross into the middle.
It dropped in the six-yard box and Dunkley was first to react to knock it into the net.
Alex Neil made his first substitution of the game in the 69th minute, Harrop replacing Sinclair.
Soon after, Tom Clarke came on for Hughes, Fisher switching to left-back and skipper Clarke taking over at right-back.
Wigan began to pile on the pressure as the second half went on, a header from Moore dropping just over the bar and landing on the top of the net.
Jayden Stockley came on as the final Preston sub, replacing Maguire in an attempt to make the ball stick up front and relieve the pressure.
At the same time, former PNE favourite Joe Garner joined the action in place of Moore.
In the 89th minute, Gelhardt's shot from outside the box was well parried by Rudd diving to his left, the effort having gone through a crowded box.
North End then saw six minutes of stoppage-time out quite comfortably to secure a fourth away win of the season.
Wigan: Marshall, Kipre, Dunkley, Naismith, Byrne, Evans (Jacobs 54), Morsy, Williams, Pearce (Gelhardt 54), Lowe, Moore (Garner 81). Subs (not used): Massey, Roberts, Balogun, Jones.
PNE: Rudd, Fisher, Bauer, Davies, Hughes (Clarke 72), Pearson, Browne, Barkhuizen, Johnson, Sinclair (Harrop 69), Maguire (Stockley 81). Subs (not used): Gallagher, Rafferty, Nugent, Ripley.
Referee: Darren England (Barnsley)