Petersfield got off to a fast start with openers Jack Wrenn (21) and Dave Squires (30) scoring quickly before Wrenn was bowled by Les Spevock (1-45).
Squires and Oscar Windebank (17) continued to put the bad balls away, but Squires then mistimed a drive back to the bowler to give Andrew Robson (2-41) a return catch.
Windebank was bowled with the score on 75, but Mark Butcher (32) and David Evans (20) put on 50 for the fourth wicket before Butcher was bowled by a good inswinging yorker from J Happle (2-37). Fergus Evans (two) was then run out going for a third run, and Jack Butcher (one) was dismissed by Andrew Morris (3-24).
The wickets continued to fall as Petersfield lost their last six wickets for 32 runs, with Gibson left stranded on 12 not out as the visitors were bowled out for 157.
Petersfield needed a good start in the field, and Windebank (1-24) and Gibson (1-25) had T Stroud (0) and Mike Burkie (15) back in the pavilion with the score on 16.
Skipper N Gerrard (34) and Andrew Morris (24) took the score to 83-2, but Oscar MacLean (2-26) and Julian Evans (1-17) took three quick wickets to leave the hosts in trouble on 83-5. Ashley Little and David Forrest added 52 for the sixth wicket before Forrest was run out for 11.
Little (28 not out) then hit the winning runs in the penultimate over as the hosts won by four wickets.