Raul Jimenez' 70th-minute goal gave Wolves all three points and sent the visitors up to sixth in the Premier League while Leeds lost for the first time in three games, slipping to 10th in the table.
Jimenez gives Wolves all three points
Leeds had the first chance of the game in the fourth minute when Helder Costa was found by Rodrigo and he won a corner, taken by Kalvin Phillips, but the danger was cleared. Some neat build-up play saw the ball find its way to Patrick Bamford, but he shot wide.
Phillips then turned provider a minute later, a quick free-kick sent to Luke Ayling, which eventually was curled on to Bamford, but this time he found the hands of Wolves keeper Rui Patricio. He thought he had given the Whites the lead from Jack Harrison's header, but the offsides flag went up.
On ten minutes, Ayling crossed in from the right, Rodrigo met it, but he couldn't quite get it right and he headed over. In the 16th minute, Bamford received the ball on the right flank, sent in a first-time cross for Rodrigo, who laid it off for Costa, but he went wide.
Just after the half hour mark, Ayling had the ball drop to him and he tried a quick snap shot, but Max Gilman got in a timely block. At the other end, Jimenez had the visitors first real chance of the match, meeting a corner that he diverted over.
Five minutes from halftime, Leeds saw shots from successive corners blocked. First, Harrison's low effort followed by Rodrigo's volley straight at Patricio.
In stoppage time, Wolves, against the run of play, should have been ahead. Leander Dendoncker's cross was met by Daniel Podence after a pull-back by Romain Saiss and the shot was well-saved by Ilian Meslier.
Podence then made a driving run into the Leeds box, saw his cross cleared by Phillips, but Saiss latched onto it and his half-volley found the bottom corner, but VAR confirmed that Podence was offsides, overturning the initial call.
Meslier was called upon after a left-footed strike by Pedro Neto forced the Dutchman into a save. In the 70th minute, Wolves had the ball in the back of the net and this time it counted as Pascal Strujik slipped, allowing Jimenez and his shot came off of Phillips' head and wrong-footed Meslier.
With ten minutes remaining, Leeds looked for an equalizer and Hernandez' shot was deflected by Willy Boly over the crossbar. Shortly thereafter, substitute Raphinha, making his Whites debut, saw Saiss intercept the ball and another sub Ivan Poveda, had his shot deflected.
Desperate for a goal, Rodrigo slid one in for Bamford, who had it intercepted by Conor Coady. Ayling sent one in, but it was too close to Patricio, who gathered it in easily. Ayling would do brilliantly to get in the way to deny Ruben Neves.
Jimenez and Neves would make clearances deep into stoppage time from Leeds chances and the final whistle blew, Wolves victorious in a game they were second best for most of the contest.
Wolves need more attack going forward
Despite their victory, Nuno Espirito Santo's side were largely impotent in the Leeds half. Well-drilled defensively, they'll always be in with a chance, but the attacking talent in the squad should mean more creative play and pressure on opposing defenses. If they can find the right balance, they should return to the form they showed the last two seasons.
Leeds can be encouraged despite the defeat
The displays put on by the Whites in their return to the top flight so far have shown their adaptability: winning high-scoring games, dominating with long spells of possession, catching opponents on the counter-attack, pressing opponents higher up the pitch or sitting back and defending deeper. Leeds look solid and should have little difficulty staying in the Premier League with more showings like this.