Hee-chan Hwang gave Wolves a 10th-minute lead and it looked like that would hold up until Rodrigo converted on a penalty in the 94th minute.
Story of the match
Nelson Semedo broke free down the right and cut inside for Raul Jimenez, whose shot took a deflection and fell for Chan, who had an easy finish to put Wolves in front.
Like in the first half, Leeds were seeing plenty of the ball but were struggling to break down the visitors who maintained a strong defensive line.
Shortly after the interval, Raphinha left the pitch to be replaced by Crysencio Summerville.
Wolves had a chance to double their lead with 20 minutes remaining. Joao Moutinho stood over a free-kick on the edge of the box, but struck it well over and wide of the goal.
Both Tyler Roberts and Struijk went close to finding the Whites equalizer with headers that were just wide and then saved by Sa.
The Portugese then tipped a powerful strike by Joe Gelhardt over the bar and he had another chance after finding some space, but he blazed over.
The visitors had a good chance in the final stages, but Meslier saved well from a shot by Daniel Podence.
Gelhardt won the penalty that led to the Leeds leveler, racing into the box and this time he was brought down by Semedo.
Rodrigo stepped up and sent Sa the wrong way to net a fully deserved equaliser for the Whites and sending the Elland Road faithful into raptures.
Man of the match: Raphinha
When he was on the pitch he was, again, relentless. Deserved a goal, an assist or just the team in the lead for his efforts. Was everywhere on the pitch, attacking the box, regaining possession in his own third and driving through the center.