Everton secured their spot in next season's Premier League after they came from two goals down to snatch a 3-2 victory over Crystal Palace on Thursday.
The home side were battered in the first half and deservedly fell behind to strikes from Jean-Philippe Mateta and Jordan Ayew, but they looked galvanised after the break and secured all three points after goals from Michael Keane, Richarlison and Dominic Calvert-Lewin.
Ayew's diving header seven minutes in was the game's first real half-chance. The Ghanaian had a lot of work to do to get his effort on target and just couldn't get enough on the ball.
Everton had to wait a little longer for their first effort. Richarlison stepped up to a free-kick on the edge of the box but saw his effort go over after clipping the top of the bar, potentially after a fingertip save from Jack Butland.
It was a slow start from Everton and Mateta punished them with a powerful header 20 minutes in to fire Palace ahead.
Ayew was perhaps lucky to avoid a red card for a nasty challenge on Anthony Gordon, and he added to the controversy almost straight after as he bundled home the scrappiest goal of the season to put Palace 2-0 up heading into the interval.
Everton weren't great at the start of the second half but were handed a route back into the game as Keane collected Mason Holgate's knock-back and fired an impressive half volley past Jack Butland.
The goal galvanised Frank Lampard's side and they grew into control of the game, with Dominic Calvert-Lewin wasting a great chance to bring Everton level on the hour mark.
Almost straight after Jordan Pickford needed to make a great reaction save to stop Mateta from thundering home a second.
Everton were knocking and knocking on the Palace door and finally got the equaliser you'd have to say they deserved through Richarlison, whose deflected strike evaded Butland and nestled in the bottom corner.
They kept coming and got the all-important third through Calvert-Lewin, whose excellent diving header went flying into the back of the net and prompted a huge pitch invasion from fans with five minutes left on the clock.
Things calmed down fairly swiftly and Palace desperately tried to get an equaliser of their own, but Everton defended for their lives and held one for one of their biggest victories in recent memory. Safety secured.
1. Everton (3-4-2-1)
GK: Jordan Pickford - 5/10 - Got himself in all sorts of trouble for the second goal but made a nice stop to deny Mateta in the second half.
CB: Seamus Coleman - 5/10 - So slow in the first half but looked energised after the break.
CB: Michael Keane - 6/10 - Not on it at all at the back but a quality strike to try and save the day.
CB: Mason Holgate - 5/10 - Shaky for the opening 45 but led by example after the break.
RM: Alex Iwobi - 7/10 - Ineffective as a wing-back but soon moved into a central role to offer his energy inside. Worked hard and made a real change.
CM: Abdoulaye Doucoure - 6/10 - A really poor first 45 but stepped it up after the break. Still not great but stopped this performance from being embarrassing.
CM: Andre Gomes - 1/10 - If a performance ever screamed 'transfer request', it was this one. Deservedly hooked at half time.
LM: Vitaliy Mykolenko - 5/10 - Another who was poor in the first but solid in the second.
AM: Anthony Gordon - 5/10 - Can't fault his work rate again but seemed more interesting in getting into fights than actually scoring a goal.
AM: Richarlison - 7/10 - Didn't get much service but stole the show after the break. So impressive.
ST: Dominic Calvert-Lewin - 6/10 - Similarly isolated but popped up with the quality needed to save the season.
SUB: Dele Alli (46' for Gomes) - 7/10 - Made a real impact after coming on.
SUB: Demarai Gray (61' for Gordon) - 7/10 - Some really nice work out wide. Caused real problems.
SUB: Jonjoe Kenny (90' for Richarlison) - N/A
2. Crystal Palace (4-3-3)
GK: Jack Butland - 5/10 - Couldn't do much for the goals.
RB: Nathaniel Clyne - 6/10 - Didn't have a whole lot to do down his wing.
CB: Joachim Andersen - 6/10 - Dominant in the first 45 but couldn't deal with all Everton's late pressure.
CB: Marc Guehi - 7/10 - Solid in the air and on the ground. Really, really impressive. Again.
LB: Tyrick Mitchell - 5/10 - An impressive first half but found himself struggling after the break. Overwhelmed for Keane's goal and Everton continued to push down his side.
CM: Will Hughes - 7/10 - Pulled the strings from the base of midfield. Had so much time on the ball. Forced off after complaining of a migraine and his exit changed the game.
CM: Jeffrey Schlupp - 7/10 - Romped through Everton's midfield with ease. Great link-up play with those around him.
CM: Ebere Eze - 8/10 - Balled out. Everton's defenders couldn't get anywhere near him.
RW: Jordan Ayew - 7/10 - Lucky to avoid a red card in the first half and followed that up with his first away goal in nearly two years.
ST: Jean-Philippe Mateta - 7/10 - Took his goal really well and asked a lot of questions of Everton's back line.
LW: Wilfried Zaha - 7/10 - Up for a scrap early on but channelled that into a nice performance.
SUB: Luka Milivojevic (57' for Hughes) - 4/10 - Not impressive after he came on. No surprise Everton grew into the game.
SUB: Conor Gallagher (74' for Schlupp) - 5/10 - First contribution was deflecting Richarlison's equaliser into the back of the net.
SUB: Christian Benteke (81' for Mateta) - 5/10 - Didn't get much of a chance.