City fell to their first defeat in five Sky Bet League One games.
Head coach Mark Kennedy made one change, with Adam Jackson coming back into the back three.
The first shot on target came in the 10th minute as Daniel Butterworth was played through into the area, but his shot was blocked and went out for a corner which Carl Rushworth comfortably saved.
Four minutes after there was another chance for Vale as Regan Poole’s block went out for a corner. The following delivery was met by the head of Ben Garrity, but Rushworth could comfortably stop it.
City looked dangerous on the counter-attack, with Ben House and Danny Mandroiu combining with the latter's cross not quite finding his team-mate.
And Jack Diamond skipped past a couple of challenges before seeking out House in the box, but the low cross is cut out by a crowd of Vale defenders.
In the 39th minute, Butterworth had another attempt at goal, this time from range, but his effort was directed towards Rushworth who saved it comfortably.
A big chance for City in the 50th minute following a mistake made by a Vale defender, where Jordon Garrick was able to go one-on-one and shoot, but his effort was saved by Jack Stevens. Matty Virtue did well to get the follow-up and fired from just outside the box, but the ball went over the crossbar.
Port Vale kept pushing and they took the lead in the 68th minute through Butterworth who scored from a follow-up inside the six-yard box after Rushworth could not hold Mipo Odubeko's powerful shot .
City pushed for a leveller and Rushworth started a quick counter-attack which led to Diamond driving into the area but his cross was blocked behind for a corner. The following set-piece taken by Lasse Sørensen, who had came off the bench a little earlier, was cleared by Vale.
The Imps almost levelled in the 90th minute following a corner delivered by Jamie Robson which led to a scramble in the area following O'Connor's flick on - Jackson threw himself at the ball but was not able to connect.
And the final chance also fell the way of the Imps after Tashan Oakely-Boothe was played through by Virtue, but he flashed a shot wide.
Imps: Carl Rushworth, Regan Poole ©, Adam Jackson, Max Sanders (Lasse Sørensen 69’), Paudie O’Connor, Joe Walsh, Ben House, Danny Mandroiu (Jordan Garrick 33’), TJ Eyoma, Sean Roughan (Jamie Robson 69’), Matty Virtue, Jack Diamond (Tashan Oakley-Boothe 85’).
Subs (not used): Jordan Wright, Charles Vernam, Freddie Draper.
Port Vale: Jack Stevens, Lewis Cass, Dan Jones, David Worrall (Sammy Robinson 29’), Ben Garrity (Tom Conlon 24’), Mal Benning, Will Forrester (Connor Hall HT), Mipo Odubeko (Gavin Massey 75’), Ellis Harrison, Tom Pett ©, Daniel Butterworth (James Wilson 75’)
Subs (not used): Aidan Stone, Dennis Politic
Goals: Daniel Butterworth (68’).
Referee: Sunny Gill.
Attendance: 7,294 (681 away).