Huddersfield had won their last five home matches and looked set to extend that run when Fraizer Campbell headed them into the lead inside six minutes.
But Veljko Paunovic’s side battled back in the second half and two goals from Joao, returning from a soft tissue injury that had sidelined him for the past five matches, turned the game around.
First he collected a long pass to find the bottom corner, before hitting the same spot 13 minutes later with a stunning strike from outside the box.
Story of the match
An open contest was anticipated and Huddersfield made the most of the space given to them to take a sixth-minute lead. Juninho Bacuna strode forward and found Isaac Mbenza, who swung a fantastic cross from the touchline for Campbell to outmuscle Tom Holmes and power a header past Rafael.
Reading were boosted by the return of top scorer Lucas Joao up front, but he struggled for chances as a succession of long through balls in the first half failed to lead to clear opportunities.
Instead their best threat was Sone Aluko, who had their first two efforts. He rounded Harry Toffolo only to aim tamely at Ryan Schofield, before his good footwork created another opening but he blasted wide.
Huddersfield were dealing with the increased pressure well but almost conceded with the final action before the break. A John Swift free-kick was headed at the back post by Holmes, but Schofield somehow kept it out with a remarkable point-blank stop.
There were more chances in the second half as both sides returned to the field with adventure. Swift was gifted a free-kick in a perfect scoring position but saw his effort dip narrowly over the bar, before a Huddersfield counter saw Mbenza come an inch away from tapping in Lewis O’Brien’s cross.
Moments after that, Reading levelled, as their attempts to play long finally came to fruition. Tom McIntyre floated the ball in behind and Joao held off the attention of Rarmani Edmonds-Green to get to the ball and place it in the bottom corner.
The striker was not done there. When Campbell gave away the ball to Reading they moved decisively, and the freshly-introduced Michael Olise found Joao. What followed was majestic, as he set himself up on the edge of the box and unleashed a stunning strike right into the corner of the helpless Schofield’s net.
Huddersfield had 25 minutes to make a comeback and the two good chances they fashioned both fell to Mbenza. He first had a firm volley denied by a fantastic low Rafael save, before Bacuna slipped in the winger only for his poke to go past the keeper but beyond the far post too.
The closest the match came to another goal was for Reading in injury time, when substitute Tomas Esteves had a volley acrobatically tipped onto the crossbar by Schofield.
Man of the match: Lucas Joao (Reading)
The Portuguese forward underlined how big a miss he has been in the past few months for Reading with a superb display, offering two clinical finishes in the second half.