Two goals from Tom Pope and Mark Marshall gave Port Vale the lead, after Jim O'Brien scored the opener. Sanmi Odelusi then equalised in the second half, but Michael O'Connor ensured that the visitors return home with three points.
Coventry took the lead within four minutes as O'Brien scored his fifth goal of the club with a long-range effort into the bottom left corner of the net.
Coventry dominated possession in the early stages of the match, and it took until the 22nd minute for Port Vale to threaten when Ben Williamson failed to hit the target from long range.
Veteran midfielder Marcus Tudgay failed to test Neal on the half-hour mark, before Tom Pope missed a header for the visitors.
The match was delayed due to an injury to Ryan Inniss, before Samuel saw his shot blocked with nine minutes of the first half remaining.
Pope scored the equaliser in the 40th minute, directing the ball into the net from six yards out.
Mark Marshall gave Port Vale the lead on the verge of half time, striking into the bottom-left corner.
Marshall could not add a second, as his shot was saved by Lee Burge.
Sanmi Odelusi equalised in the 70th minute, striking into the bottom left corner after a quick counter-attack.
The match was level for just six minutes as Michael O'Connor gave Port Vale the lead once more, directing a free kick into the bottom right corner.
Samuel and Luke Williams missed chances to equalise in the final 10 minutes.
The result means that Coventry remain worryingly close to the relegation zone while Port Vale rise to 11th.