Leeds surrendered fourth place in the Championship to Reading when they were beaten 1-0 by their play-offs rivals at Madejski Stadium.
Reading went in front midway through the first half when Yann Kermorgant latched on to a loose ball on the edge of the area and lashed home an unstoppable drive.
Leeds, previously unbeaten in seven matches, went closest through Pablo Hernandez in the first half, when he jabbed wide from close range.
Reading, starting in fifth place two points behind Leeds, were looking to continue their good home form of nine wins in 12 fixtures.
But Leeds began the brighter, with Hernandez taking advantage of an error by Tyler Blackett.
However, with only Ali Al Habsi to beat, Hernandez shot tamely at the home goalkeeper.
Reading responded in their usual patient style, which almost paid off when a short pass from Roy Beerens released John Swift.
The England Under-21 midfielder had time and space, but sliced his shot high over the crossbar.
Reading gradually upped the tempo and were rewarded when they went ahead in the 21st minute.
A quick throw-in from Garath McCleary was inadvertently nodded towards to the edge of the area by Leeds left back Charlie Taylor.
Kermorgant was waiting to pounce and thundered in his 11th goal of the season.
Keeper Rob Green got a hand to it, but, such was the power, could only help it on its way into the net.
Reading twice wasted good chances to extend their lead, with Beerens volleying over and McCleary denied one-on-one by Green.
Hernandez went close to connecting with a fine cross from Alfonso Pedraza as Leeds tried to strike back, while Kermorgant struck a post with a low effort on the stroke of half time.
Reading opened brightly in the second half, with a cheeky back flick from Kermorgant deflected just wide.
A plastic bottle was then thrown at Al Habsi, from the section of Leeds fans behind his goal, as he prepared to take a free kick.
The keeper calmly emptied the liquid from the bottle before handing it to a steward.
At the other end, Reading again should have increased their advantage. Kermorgant crossed for the unmarked Beerens, but the Dutchman lost control at the vital moment.
Leeds piled on the pressure near the end through a series of aerial balls forward, but were unable to find the equaliser.
The game ended on ugly note when other objects were thrown at Al Habsi, from the same section of Leeds fans, but they did not appear to strike him.
Reading: Al Habsi, Gunter, Moore, Blackett, Obita, Kelly, Williams, McCleary, Swift, Beerens, Kermorgant. Subs: Legg, Meite, Popa, Watson, Oxford, Grabban, Mutch.
Leeds United: Green, Berardi, Bartley, Cooper, Taylor, Bridcutt, Vieira, Sacko, Hernandez, Pedraza, Wood. Subs: Roofe, Doukara, Silvestri, O’Kane, Dallas, Phillips, Barrow.
Referee: Keith Stroud (Hampshire)