Reading earned only their second Premier League win of the season as Pavel Pogrebnyak's fifth-minute goal secured a vital win over West Ham.
Pogrebnyak latched onto a poor backpass from Hammers defender James Collins, before beating Jussi Jaaskelainen.
Adam Federici tipped Collins's header over while Jem Karacan's shot was pushed onto the bar by Jaaskelainen.
Substitute Ricardo Vaz Te nodded wide from three yards as the hosts held on to move within five points of safety.
The result means the Royals remain a place above bottom side QPR on 13 points, with Southampton (17 points) and Aston Villa (18) above them.
Reading beat West Ham twice last season in the Championship and they made a flying start to the game, Pogrebnyak giving them the lead after just five minutes.
Collins under hit a backpass to goalkeeper Jaaskelainen and the Russian intercepted the ball, slotting home beautifully for the opener.
The goal settled Reading, who dominated midfield in the opening stages with Jimmy Kebe on the right wing their best outlet.
West Ham slowly started to come into the game, threatening with crosses from wider positions, and Collins almost made amends for his earlier mistake with a close-range header that was superbly tipped over the bar by Federici.
Nolan also tested the Australian keeper with a curling effort from the edge of the area, while Reading needed several heroic tackles from central defender Alex Pearce to keep West Ham at bay.
It was a half low on quality and full of poor challenges, with Mark Noble, Pogrebnyak and Collins all booked, and another four yellow cards following in the second half.
Carlton Cole had West Ham's first chance after the break, heading Matt Jarvis's cross wide as the visitors introduced Jack Collison for Matt Taylor to try to give them a grip in midfield.
Cole was involved again soon after, stamping on Chris Gunter, with the Hammers forward lucky to escape punishment.
As the rain lashed down it became a gruelling battle, with Reading dropping deeper and deeper as they looked to hold on.
Collison went close with a low strike that Federici did well to keep out at full stretch, and Karacan crashed a shot against the crossbar from 18 yards.
Vaz Te made his return after 12 weeks out with a shoulder injury.
And the Portuguese had a great opportunity to level the game but headed wide when unmarked three yards out.
Reading manager Brian McDermott told BBC Sport:
"I'm very pleased. We were very resilient today and we needed to be. We know what we have to do to get results in this league and we move on now and look forward to our next game against Spurs.
"We had to deal with facing a very physical side and we have kept another clean sheet. I didn't feel they had too many opportunities. Pavel took his chance very well and we've also hit the bar.
"A couple of their players could have been sent off and you saw two teams desperate to win out there."
West Ham manager Sam Allardyce told BBC Sport:
"We shot ourselves in the foot from the early stages. James Collins has been solid for us this season but he made a basic error and they took full advantage.
"Reading defended deep and in numbers and Vaz Te has missed a glaring, glaring chance and two errors mean we have not taken any points against them.
"We are slipping back down that way now and that is going to put pressure on us. We should have undone our early error but Vaz has missed it.
"We are bitterly disappointed not to come away with a point and now we are without James (Collins) and Kevin (Nolan) through suspension for an important game against Norwich."