Vale threatened from a dead-ball situation again as Tom Pope headed over, and Fleetwood soon went up the other end to increase their lead from a set piece of their own.
Morris swung in a corner and defender Roberts climbed high to head home his third of the season.
Each of the substitutes had chances to establish the hosts a foothold in the game as Campion headed narrowly over before O'Sullivan had a shot deflected wide.
Fleetwood stalled some of Vale's momentum, although the replacements still looked lively as O'Sullivan blazed over following good build-up play and Campion failed to steer Freddie Veseli's cross through a crowded box.
Although a late O'Connor strike which wrong-footed Chris Maxwell on its way into the net threatened to set up a grand finale, the points were safe when Town reached stoppage time with their two-goal lead intact, and Vale finish 18th after a first defeat in four.