Chasing 165 for victory in the Hampshire League Division 6 South East fixture, Emsworth crashed to 17-5 with Danny Bradley-Turner running riot with four wickets.
But Johnson - playing only his second game since August 2019 - led the recovery with an unbeaten 95.
He couldn’t do it on his own, though, with No 10 Phil Albury (23 not out) helping him add an unbroken 90 for the ninth wicket. Apart from those two, Simon Defraine (19) was the only other batter in double figures.
'Is proving one hell of a signing.... A real livewire' - Portsmouth match ratings from 2-0 win at Cheltenham
Portsmouth boss provides latest transfer development on former Millwall, Luton and Wigan midfielder as Fratton Park exit looms
Portsmouth boss Danny Cowley hails squad depth as tactical masterclass at Cheltenham pays off
RECAP as Colby Bishop steal show as Portsmouth edge Cheltenham at sun-soaked Whaddon Road
Cheltenham 0-2 Portsmouth: Colby Bishop steals show as Blues prove too hot to handle in impressive display at sun-soaked Whaddon Road
It was Johnson’s highest score since he made 104 against Aldwick in a friendly in 2015. In the league, it was his highest since a career best 178 for Emsworth 2nds against Purbrook 3rds in 2013.
Gosport had earlier reached 95-1 thanks to Ryan Grant (67) and Russell Weller (50), but the other four members of the top six only managed two between them.
Harry Falcon-Paterson (3-35) and Johnson (3-19) helped bowl the visitors out for 164 (Bradley-Turner 4-19).
It was a case of deja vu for Kalim Shiraz as Portsmouth Community skittled their opponents for a double figure score for the second week running.
A week after recording 8-3-16-4 as Petersfield were rushed out for 60, the opening bowler returned identical figures as Waterlooville 3rds were dismissed for 76.
Community eased to a nine wicket victory in 10 overs as they maintained second spot in following a fifth successive victory.
Put into bat, Ville struggled against the new ball pair of Shiraz and Ninad Gokhale (1-13) who took wickets and controlled the run rate.
Rob Cusack (1-14) came on as first change and dismissed Josh Quade (14), the only Ville batter to reach double figures among their top eight.
Two run outs enacted by Rich Wyatt did not help Ville's cause and Dave Going took 2-17 as they were dismissed in just under 30 overs.
Community captain John Creamer (40) made light work of the run chase as his side took just 60 balls to score the 77 they needed. Opening partner Matt Davies (20 not out) provided good back-up.
Purbrook 3rds remain top on points per game average. While Community have beaten five teams so far, Purbrook have only won four games on the pitch - their fifth win was handed to them when their opponents failed to raise a team.
Hayden Sole was again in fine form as Purbrook caned Fair Oak 5ths by nine wickets.
A fortnight after hitting an unbeaten 84 on his first league appearance of the season against Gosport 3rds, he struck an undefeated 88 as Purbrook raced to their 136 victory target inside 28 overs.
After opener Roy Marsh was out for a single, Sole and Sam Brown (43 not out) shared an unbroken 136-run stand.
Jack Taylor (3-25) and Daniel Porton (3-29) impressed as Fair Oak, who had chosen to bat first, were bowled out for 135.
Teen Felix Stanley compiled a new HL best for the second week running as Portsmouth & Southsea 4ths defeated Clanfield 2nds.
A week after the under-15 batter hit 54 not out against Bedhampton 2nds, he struck 69 at the top of the order as P & S posted 182-8 (Andy Wellen 3-38).
Clanfield slipped to 74-6 in reply before a seventh wicket stand of 53 between Dave Hickey (36) and PJ Ford (32 not out). They ended on 152-8.
Ivan Brown (46) and Jack Mitchell top scored as Hayling Island 3rds reached 160-3 against Gosport Borough 4ths at Privett Park.
Oliver Bedford (3-24) and Jim Higgins (3-33) pegged them back to 184-8, with 29 wides in a total of 36 extras.
Billy Wythe (3-26) helped reduce Gosport to 79-7, before a 44-run stand for the eighth wicket - the highest partnership of the innings - between Shaun Harris (28) and Mick Eggleton (24 not out) helped the hosts reach 139 all out.
Petersfield captain Steve Gibson led from the front as his side claimed victory over Bedhampton Mariners.
First, he opened the bowling and bagged 4-26 as the hosts were bowled out for 128 (Paul O’Leary 55).
Then he top scored with 42 as Petersfield overcame tight spells from Bedhampton opening bowlers Jamie Nottage (2-15 off eight overs) and Gary Hounsome (2-17 off eight overs) to triumph on 132-6.