The Baggies twice took the lead, first through Kenneth Zohore, who struck the winner when the sides met in the FA Cup six days previously, and then through Hal Robson-Kanu at the start of the second half after Josh Davison had levelled.
But they failed to claim a first win in five league games when Charlton equalised again when the ball deflected into the net off Johnstone after the keeper had pushed Tom Lockyer's 76th-minute header against a post.
The draw meant Charlton avoided defeat in their first home league game since the recent takeover of the club – but Lee Bowyer's side have won just one of their last 15 Championship games.
Zohore had already had the game's best opportunity before he put the visitors ahead midway through the first half.
Neat work by Matheus Pereira on the left flank had created the space for the Brazilian to deliver a cross that Zohore met with a glancing header and it took a full stretch save by Charlton keeper Dillon Phillips to divert the ball to safety.
But the Dane made no mistake when a second chance came his way moments later.
Zohore conjured the opening himself when he robbed centre-back Lockyer deep inside the home half before driving into the penalty area.
And the striker beat Dillon Phillips with a powerful low drive at the keeper's near post after defender Deji Oshilaja had got across to block Zohore's first effort.
Charlton had created little before that point but they forced their way back onto level terms just seven minutes later after a well-worked short-corner routine.
Bilic will not have been happy with the way his side faded after a promising start but the Albion manager could have no complaints about the response after the break.
The Baggies reappeared with a much more positive approach and were back in front less than a minute after the restart.
Matt Phillips did well to find a way past Alfie Doughty and send in a low cross that Robson-Kanu met at the near post and the Wales international's flick found its way past Dillon Phillips with the help of a deflection off Sarr.
There were few signs Charlton were capable of drawing level for a second time during a one-sided second half.
But Bowyer's side made the most of the chance that did come their way in the 76th minute as Lockyer's header from Doughty's free-kick led to the equaliser.