Rotherham proved to be as tough a nut to crack as their recent away form indicated. And just when the Addicks thought they had done it, they had the win snatched away from them in stoppage time.
Team wise, Guy Luzon returned Rhoys Wiggins to the left-back spot in an otherwise unchanged team.
The game started brightly, with the visitors having the better of the early exchanges, but it quickly degenerated into an attritional affair.
There were a couple of bits of quality to warm the fans up on a bitterly cold afternoon though.
First, after six minutes, a left wing cross from Ben Pringle was met by Conor Newton, who hit the inside of Marko Dmitrovic’s right-hand post.
Then twelve minutes later, Igor Vetokele and Callum Harriott combined to set Johann Gudmundsson up. The Icelander also hit the inside of the far post.
Charlton tried a couple of inventive corners, and from one of them, Andre Bikey volleyed narrowly over.
The second half did not see much improvement. The Addicks’ best chance fell to Gudmundsson after Vetokele laid the ball back to him, but his effort was blocked.
The Millers appealed frantically for a penalty midway through the half when they claimed Bikey had handled from a corner.
Shortly after, the hosts had a similar claim. Both appeals were waved away by Scott Duncan.
Danny Ward netted for Rotherham after 77 minutes, but his effort was ruled offside.
The Valley faithful thought they were going to witness a first home win in over three months after 83 minutes.
After some scrappy play, the ball fell to Jordan Cousins in the area and the midfielder gleefully lashed the ball into the bottom left-hand corner of Adam Collins’ goal.
Marko Dmitrovic made a stunning save from Ward three minutes from the end to preserve his side’s lead.
Unfortunately it wasn’t to be a long overdue win for Charlton. In stoppage time two of the Millers substitutes combined to fashion an equaliser for the visitors.
Adam Hamill’s pinpoint cross from the left found Ward at the far post, and he scored from close range.
The reaction to Guy Luzon was luke warm at best. He made a low profile entry but was serenaded with, “You don’t know what you’re doing,” just past the hour mark when he substituted Vetokele.
The final whistle was met with boos after another frustrating afternoon for the home fans.
Luzon will be hoping for some new faces before the transfer window closes on Monday.
Charlton: Dmitrović; Solly, Ben Haim, Bikey, Wiggins; Gudmundsson, Buyens, Veljković (Lepoint 80), Cousins; Harriott (Gomez 89), Vetokele (Watt 62).
Subs (not used): Etheridge, Wilson, Onyewu, Fox.
Goal: Cousins 83.
Rotherham United: Collin; Richardson, Arnason, Morgan, Fryers; Newton (Hunt 60), Smallwood, Green, Pringle (Hammill 80); Sammon (Ward76), Derbyshire.
Subs (not used): Thompson, Wood, Bowery, Barmby.
Goal: Ward 90.
Referee: Scott Duncan (Northumberland).
Att: 14,447 (783 Rotherham).