Two goals either side of half-time inflicted the first defeat of the season on the Royals as Walter Zenga's Wolves got off to a winning start at Molineux.
Matt Doherty broke the deadlock four minutes before the break, cutting in from the left to hammer an unstoppable effort past Al Habsi for 1-0. And within two minutes of the second half, Wolves had a two-goal cushion thanks to Joe Mason's close range header.
Royals boss Jaap Stam made just one change to the side that started in a 1-0 opening day win over Preston North End, opting for Yann Kermorgant in attack in place of Deniss Rakels. Jordan Obita recovered from a knock to take his place on the left side of defence, while Chris Gunter returned to the right full back position.
Wolves began the game on the front foot and looking dangerous and it took an excellent save from Ali Al Habsi to deny Joe Mason the opening goal after ten minutes. Mason, in space down the right, scurried into the box, cut inside Joey van den Berg and shot only for our Omani to get down well and parry with his body.
Joao Teixeira skipped past a sliding McShane challenge just inside the Royals' box five minutes later and it took a timely interception from Williams to thwart the Wolves frontman who was looking to pull the ball back and set up a shooting opportunity.
Bodvarsson took aim moments later as he wriggled free to drag a shot harmlessly wide of the left upright in the end, but the home side were dominating proceedings. A corner, won by McCleary down the left, gave Reading a chance for another worked move but this one didn't quite come off, Swift finding Kermorgant at the far post but the Frenchman unable to hook the ball back into the six yard box.
Reading on the counter attack midway through the half produced their best piece of attacking play, Swift and McCleary linking up well down the left only for the former to have the ball taken off his toes just before he could feed Kermorgant in a shooting position.
Doherty glanced a header just wide though as the hosts continued to impress, while Reading played a possession game between the back line, patient in their build up and tempting Wolves to break their shape and close us down.
They were drawn out with five minutes of the first half remaining and almost to the Royals' detriment. Teixeira chased a McShane ball back to Al Habsi and the Omani's pass towards Gunter was cut out. The Portuguese forward pulled the ball back to Saville who drilled a right-footed effort at goal, only to see Al Habsi produce a stunning one handed save to push it over his bar.
Less than a minute later though, Wolves took the lead. Matt Doherty was allowed to roll the ball onto his right boot inside the box and hammer home a thunderous effort that this time Al Habsi could do nothing to stop.
Reading almost responded immediately. Beerens in a central position teed up Swift to shoot on the edge of the area and the midfielder's placed effort was charged down by a gold shirt before Carl Ikeme could be troubled.
Half-time: Wolves 1-0 Reading
The second half began with a Wolves counter attack that won the hosts an early corner. Swung in from the right, Joe Mason held off his man to head home from close range to double Wanderers' advantage in front of a buoyed Molineux faithful.
Swift forced Ikeme into a neat save low to his left when he collected the ball from McCleary on the right and scuttled inside to pull the trigger from the edge of the area.
But Bodvarsson came close to another moments later when he surged onto a ball down the middle only to arrow over under pressure from McShane.
Reading responded, passing the ball better higher up the pitch for a period, but Carl Ikeme collected a couple of crosses without too much fuss and both McCleary and Beerens saw shots charged down.
Yakou Meite was introduced on the hour and his first involvement won a corner on the right. McCleary's outswinger was met by Meite's head but the substitute couldn't keep it down and it sailed into the Wolves fans behind the goal.
Some fancy footwork from Teixeira at the other end saw him jink past Obita and then power a left-footed effort over the bar from a narrow angle. And Wolves should have had a third soon after when Teixeira stole the ball from the toes of Al Habsi after a short back pass from Van den Berg - the ball found its way to Mason in the middle but his shot was smothered by the body of Al Habsi to the visiting fans' relief.
With the final ten minutes upon us, Obita win a free kick on the left which was half cleared but only as far as Williams on the edge of the area. He wound up to shoot first time, but his effort was charged down. Meite then tried his luck from distance but fired well over the crossbar.
And it was Al Habsi in action late on when Bodvarsson rifled a powerful effort across goal and the Omani leapt to his right to deny the home side a third. In the last of the ninety minutes, Al Habsi produced an even better stop, shovelling a Bodvarsson far post header off his line.
Four minutes of extra time elapsed and the first defeat of the season was signalled by the final whistle. Stam's men will now look to respond in a midweek trip to Newcastle United on Wednesday night.
Full-time: Wolves 2-0 Reading
Wolves: Ikeme, Coady, Doherty, Batth (c), Iorfa, Evans, Edwards, Saville (Henry 89), Mason (Price 84), Bodvarsson, Teixeira (Wallace 71).
Unused sub: Lonergan, Costa, Deslandes, Hause.
Yellow: Batth, Evans
Goals: Doherty (41), Mason (47)
Reading: Al-Habsi, Gunter, Obita, McShane (c), Van den Berg, Evans, Williams, Swift (Rakels 76), McCleary (Harriott 72), Beerens (Meite 62), Kermorgant.
Unused subs: Jaakkola, Watson, Cooper, Kelly.
Yellow: Obita, Kermorgant.
Referee: Mr D Bond