The Valiants’ final friendly game ended in a victory over Premier League opponents after strikers Pope and Williamson both found the net.
Carl Dickinson wore the captain’s armband on the night and is now in pole position to be skipper for the new season.
Vale went behind early on when Kemar Roofe was sent clear by Craig Gardner and beat Johnson.
But Vale bounced back to take a first-half lead – firstly through Ben Williamson converting Ryan Lloyd’s cross and then Tom Pope scoring from O’Connor’s free-kick.
However, the visitors equalised early into the second period with Bradley Garmston scoring via a deflection. But Vale should have gone in front shortly afterwards – O’Connor’s shot hit the bar but Williamson was unable to covert the rebound.
Vale then made a number of changes and in the closing stages, the home side took the lead once again after West Brom’s Craig Dawson headed the ball over his keeper.
Vale: Johnson, Yates (Veseli), Robertson, McGivern (Smith), Dickinson (Marshall), Birchall, O’Connor (Lines), Jennings, Lloyd, Pope (Dodds), Williamson
Subs: Neal, Boot
Attendance: 2,145 (400 visitors)