At the other end of the Premier League table, Brighton guaranteed their Premier League survival with a 0-0 draw against Newcastle.
Wolves, now unbeaten in three games, opened the scoring four minutes before half-time at Molineux.
Andros Townsend lost possession and Joao Moutinho found Matt Doherty, who crossed for Portuguese midfielder Daniel Podence to head his first goal for Wolves.
Jonny condemned Palace to a seventh successive defeat in the 68th minute, turning to fire home from close-range after Adama Traore and Raul Jimenez carved open the Palace defence.
Nuno Espirito Santo’s side climbed to sixth place, one point above Tottenham, and will be certain to qualify for the Europa League if they win at Chelsea in their last game of the season on Sunday.
They would also qualify if Tottenham lose at Palace in their final match.
At Bramall Lane, Sheffield United were handed a second successive defeat, ending their bid to cap a superb first season back in the top-flight by earning a European berth.
Carlo Ancelotti’s team won it in the 46th minute when Brazil forward Richarlison met Gylfi Sigurdsson’s free-kick with a glancing header for his 15th goal of the season.
Chris Wilder’s eighth placed side are five points behind Wolves and four points adrift of Tottenham with one game left.
“I’m disappointed for the players today. But what you try and do in a season is get your club to overachieve and we have ridiculously overachieved,” Wilder said.
“Top six should never have been in the equation from the minute we set foot into the division. There are a lot of clubs that would swap places with us.”
The teams who finish fifth and sixth are certain to reach next season’s Europa League.
If the FA Cup winners finish in the top six, then seventh place would also qualify for the Europa League.
Arsenal, who face third-placed Chelsea in the FA Cup final, are currently 10th, meaning Tottenham are in danger of a first season without Europe competition since 2009-10.
– Brighton avoid the drop –
At the Amex Stadium, Brighton got the point they needed to be mathematically certain of avoiding relegation.
Graham Potter’s side were already virtually certain to stay up before the match because their goal difference is far superior to third-from-bottom Aston Villa — the only team in the relegation zone who could have caught them.
Brighton have won just two of their last 17 league games, but ending a run of three successive home defeats moved them seven points clear of the bottom three, with Villa having just two games left.
“At this stage of the season we can talk about performances but it’s about getting the points you need,” Potter said.
“It’s been a unique season in what we’ve had to deal with. It’s been a challenge.
“We’ve come through. Job done. I’m very proud to be in the Premier League next season.”
Injury-hit Newcastle’s frailties at the back were on display when Emil Krafth failed to clear properly and then slipped over in his own area.
Neal Maupay stole possession but let Newcastle off the hook with a wayward finish before Leandro Trossard brought a good save from Martin Dubravka.
Miguel Almiron forced a smart stop from Brighton keeper Mat Ryan before Newcastle substitute Andy Carroll headed wide from close-range.
Download our app and read this and other great stories on the move. Available for Android and iOS.