And Dennis Wise will have to make sure his side defend set-pieces slightly better when they play at Cardiff's Millennium Stadium on May 22.
Neither side had managed a shot on target when Coventry managed to get it right in the sixth minute.
Veteran Steve Staunton won a corner down the left and when Bjarni Gudjonsson swung over a cross, Calum Davenport got his head to the ball and powered it goalwards.
Striker Julian Joachim was the first to react and managed to turn it in past Andy Marshall.
Millwall could have issued an immediate response when Nick Chadwick managed to get to a free-kick from Robbie Ryan and fire it towards the far post. Tim Cahill spotted it was going just wide but could only turn it into the side-netting.
It proved to be an expensive miss when, in the 13th minute, the home side again made the most of a Gudjonsson corner. French midfielder Eric Deloumeaux climbed above the Millwall defence and, as his header was about to cross the line, Davenport made sure.
Again Millwall spurned an opportunity to bounce back when Darren Ward blasted an effort wide after Chadwick had set him up in the area with a neat header.
Coventry were unlucky not be awarded a penalty when Alan Dunne clearly handled as Graham Barrett rounded him inside the area.
Wise gave his judgement on the performance when he made a triple half-time substitution.
But it made precious little difference and the home side tied up the points in the 58th minute when Joachim moved on to Darren Ward's short back-pass and pushed it past Marshall.
Still there was more and with four minutes left Matt Lawrence brought down Joachim in the box allowing Gary McSheffrey to bag his tenth goal in 13 starts.
Millwall defender Alan Dunne was carried off with three minutes left.