Coventry City claimed a Boxing Day three points in front of the largest home crowd of the season against Port Vale.
Substitute James Maddison was the difference as the Sky Blues were rewarded for an impressive second-half performance at the Ricoh Arena
The City boss was forced into defensive changes for the game with Sam Ricketts coming back in after his suspension, and it was the City's defence who was the busiest during the first 45 minutes.
Six minutes in, Vale should have took the lead when the hard-working AJ Leitch-Smith took advantage of a defensive error to fire a low shot against the post for Aaron Martin to flick clear in the six-yard area.
Robert Page's Vale pressed City hard up the pitch and forced the Sky Blues into several misplaced passes in a first-half which yielded few chances.
The second opportunity for Vale came just before the half-hour as a right-sided cross found Byron Moore to set up Sam Foley but he fired his effort over under pressure from Romain Vincelot.
City improved. Joe Cole started to find the ball in space as City's best chance in the half came in the 41st minute when he found Ruben Lameiras to scoop the ball around the corner for Jacob Murphy but he put his effort narrowly wide.
To use a tired old cliche, it become a game of two halves as the Sky Blues came out a different side after the break. Lameiras curled an effort narrowly wide in the 51st minute before City had a strong penalty claim turned down when Murphy was tripped in the area by Ben Purkiss six minutes later.
The Sky Blues had the Valiants pressed back in their half as the biggest Ricoh Arena crowd of the season encouraged wave after wave of City attacks. Armstrong's right-sided cross was almost turned in by Cole before the former Chelsea had a volley blocked in the 65th minute.
James Maddison was introduced in the 72nd minute and it would be the former Academy graduate who would win the game for City. Sub Jim O'Brien found Maddison in little space but he turned Michael O'Connor before firing home into the bottom corner from 20 yards out with 11 minutes left on the clock.
Vale threatened the City goal in the five minutes of additional time as sub Uche Ikpeazu also had a strong penalty claim denied as City claimed three points to remain fourth in League One.
Coventry City: Charles-Cook (GK), Phillips, Ricketts (C), Martin, Stokes, Vincelot, Bigirimana, Lameiras (Maddison 72), Murphy (Kent 81), Cole (O'Brien 72), Armstrong.
Subs: Burge (GK), Haynes, Tudgay, Fortune.
Port Vale: Alnwick (GK), Purkiss, Dickinson (C), McGivern, Duffy, O'Connor, Foley (Ikpeazu 86), Daniel, Moore (Birchall 72), Leitch-Smith (Hooper 81), Grant.
Subs: Neal (GK), Streete, Yates, Kelly.
Att: 17,779 (1283 away)
Yellow card(s): Murphy (71), Vincelot (90)