Russell Anderson’s first goal for three years early on looked to have given Derby the three points they needed to ensure they were mathematically safe.
But Palace were a different proposition in the second half and John struck the bar before levelling five minutes from time to move the Eagles two points above third-bottom Sheffield Wednesday, who play Sheffield United tomorrow, with two matches remaining.
The point for Derby ensured they are eight points above the drop zone and they will definitely be safe if the Owls fail to win tomorrow.
Palace needed to make a positive start to ease their nerves but they were behind after only six minutes.
Rams skipper Robbie Savage delivered an inviting free-kick and centre-half Anderson rose highest to head home his first goal for the club from six yards out.
Derby looked dangerous from set-pieces and Shaun Barker almost joined his fellow central defender Anderson on the scoresheet but his header was turned away for a corner.
Jay McEveley tried his luck from long range but Derby full-back failed to test Palace goalkeeper Julian Speroni.
On-loan forward Tomasz Cywka ran at the Palace defence and set up David Martin, but the winger failed to get enough power on his shot and Speroni saved comfortably.
The lively Cywka had a chance of his own on the stroke of half-time but the young Pole’s shot was parried away by the agile Speroni.
Palace boss Paul Hart brought on John at half-time to give the Londoners a goal threat but Derby carried on where they left off after the break.
Savage had a chance to double the Rams’ lead but his free-kick from a dangerous position floated tamely over the bar.
Neil Danns should have drawn Palace level just before the hour-mark when Sean Scannell crossed into his path but the midfielder headed wide from just six yards out.
The Eagles were more threatening after the break and the experienced John flashed a shot wide from 12 yards out.
Michael Tonge made a better fist of his free-kick than Savage but the former Sheffield United midfielder’s strike from 25 yards out was narrowly wide.
But Palace came close once again 66 minutes in when Johannes Ertl’s long-range strike was also narrowly off target.
Derby were given another warning with 18 minutes remaining when Danny Butterfield picked out John and the striker headed straight at Bywater.
And Bywater produced a fine double save to first deny Darren Ambrose and then John following up as Palace pressed for the equaliser.
John was holding his head once again when his shot beat Bywater but struck the bar with eight minutes remaining.
But the goal finally came five minutes from time when John was on hand to slot home from 12 yards out and it was no more than the visitors deserved.