Coventry took the lead within four minutes, as Jim 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. 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 half remaining.
Pope scored the equaliser in the 40th minute, directing the ball into the net from six yards out.
Marshall gave Port Vale the lead on the verge of half time, scoring into the bottom left corner.