Premier League-bound Reading have clinched the Championship title, despite being held to a draw by a stubborn Crystal Palace side.
Southampton's defeat at Middlesbrough in Saturday's late kick-off handed the league to Brian McDermott's side.
Visitors Palace took a surprise lead when Wilfried Zaha stroked home, but Kaspars Gorkss equalised soon after.
Adam Le Fondre put the Royals ahead after Jason Roberts's red card, before Glenn Murray's superb strike levelled.
Striker Roberts, signed from Blackburn in the transfer window, was sent-off for an apparent elbow towards the end of the first half.
He will now miss the last game of the season, and could also be unavailable for Reading's first two games in the Premier League next season.
Much to everyone's surprise, it was the visitors who went ahead when Murray set up Zaha who coolly slotted home the opener.
DID YOU KNOW?
Jason Roberts' red card meant he was the first Reading player to be sent off this season.
The lead was shortlived, though, as defender Gorkss headed the equaliser following a goalmouth scramble.
Brian McDermott's men were reduced to 10 men just before half-time when Roberts was shown a straight red card by referee Andy D'Urso, who adjudged him to have caught Jonathan Parr with an elbow.
But they took the lead when Le Fondre headed home from close range after Noel Hunt's cross.
Palace were not to be outdone, however, and their battling qualities paid off when Murray lashed home the equaliser to put a dampener on Reading's celebratory week.
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +0:39
Jay Tabb fouled by Wilfried Zaha, the ref awards a free kick. Free kick taken by Adam Federici.88:36
Owen Garvan gives away a free kick for an unfair challenge on Jay Tabb. Ian Harte restarts play with the free kick.86:29
Inswinging corner taken left-footed by Owen Garvan, clearance made by Ian Harte.84:28 Substitution
Substitution Brynjar Gunnarsson is brought on as a substitute for Hayden Mullins.82:32
The referee blows for offside against Adam Le Fondre. Lewis Price takes the indirect free kick.82:00
Dean Moxey produces a left-footed shot from just outside the penalty box that misses to the left of the target.81:13
Owen Garvan takes the outswinging corner, clearance made by Alex Pearce.80:02
Inswinging corner taken left-footed by Ian Harte played to the near post, clearance made by Antonio Pedroza.78:54 Substitution
Substitution Jay Tabb is brought on as a substitute for Mikele Leigertwood.78:54
Glenn Murray concedes a free kick for a foul on Mikele Leigertwood. Free kick taken by Adam Federici.78:00
Jobi McAnuff has an effort at goal from deep inside the area missing to the left of the target.75:34 Goal scored
Goal! - Glenn Murray - Reading 2 - 2 C Palace Glenn Murray finds the back of the net with a goal from inside the penalty area to the bottom right corner of the goal. Reading 2-2 Crystal Palace.75:02
Inswinging corner taken left-footed by Owen Garvan from the right by-line, Mikele Leigertwood makes a clearance.73:29
Unfair challenge on Jobi McAnuff by Jonathan Parr results in a free kick. Adam Federici restarts play with the free kick.72:52
Foul by Ian Harte on Wilfried Zaha, free kick awarded. Free kick taken by Patrick McCarthy.69:51
Kaspars Gorkss challenges Glenn Murray unfairly and gives away a free kick. Direct free kick taken by Owen Garvan.65:51
Wilfried Zaha produces a left-footed shot from the edge of the area and misses to the left of the goal.65:07
Ian Harte concedes a free kick for a foul on Wilfried Zaha. Direct free kick taken by Owen Garvan.64:34
Antonio Pedroza fouled by Kaspars Gorkss, the ref awards a free kick. Jonathan Parr takes the direct free kick.
Substitution Antonio Pedroza joins the action as a substitute, replacing Darren Ambrose.59:19
Headed effort on goal by Adam Le Fondre from inside the penalty box misses to the right of the goal.58:08
Noel Hunt takes a shot. Save by Kyle De Silva.56:43
Outswinging corner taken right-footed by Darren Ambrose from the right by-line to the near post, Noel Hunt manages to make a clearance.55:13
Unfair challenge on Jobi McAnuff by Darren Ambrose results in a free kick. Ian Harte restarts play with the free kick.52:49
The assist for the goal came from Noel Hunt.52:49 Goal scored
Goal! - Adam Le Fondre - Reading 2 - 1 C Palace Adam Le Fondre finds the net with a headed goal from close range. Reading 2-1 Crystal Palace.52:25
Noel Hunt fouled by Dean Moxey, the ref awards a free kick. Free kick taken by Ian Harte.51:29
Mikele Leigertwood takes a shot. Save by Lewis Price.49:30
Adam Le Fondre produces a right-footed shot from just outside the area that goes harmlessly over the bar.49:05
Glenn Murray fouled by Hayden Mullins, the ref awards a free kick. Stuart O'Keefe restarts play with the free kick.46:24
Darren Ambrose takes a shot. Comfortable save by Adam Federici.45:31
Wilfried Zaha takes a shot. Save by Adam Federici.45:01
The second half has started.45:01 Substitution
Substitution Adam Le Fondre is brought on as a substitute for Hal Robson-Kanu.45:00 +2:47 Half time
Half Time The referee calls an end to the first half.45:00 +0:56
Glenn Murray concedes a free kick for a foul on Kaspars Gorkss. Direct free kick taken by Adam Federici.44:25
Lewis Price takes the free kick.44:25 Dismissal
Dismissal Jason Roberts is sent off by the referee for violent conduct.44:21
Foul by Jason Roberts on Jonathan Parr, free kick awarded.43:53
Glenn Murray takes a shot.42:30
Noel Hunt takes a shot. Save made by Lewis Price.41:46
The referee penalises Noel Hunt for handball. Free kick taken by Lewis Price.37:57
Outswinging corner taken by Ian Harte.34:26
Free kick awarded for a foul by Kaspars Gorkss on Glenn Murray. Darren Ambrose takes the direct free kick.31:51
Patrick McCarthy fouled by Noel Hunt, the ref awards a free kick. Free kick taken by Lewis Price.30:34 Substitution
Substitution Paul McShane leaves the field to be replaced by Matthew Parsons.24:04 Substitution
Substitution Julian Speroni leaves the field to be replaced by Lewis Price.20:54
Corner from right by-line taken by Ian Harte.19:30 Goal scored
Goal! - Kaspars Gorkss - Reading 1 - 1 C Palace Kaspars Gorkss grabs a headed goal from close in. Reading 1-1 Crystal Palace.18:55
Corner taken by Ian Harte, clearance by Paul McShane.18:11
Hal Robson-Kanu fouled by Kyle De Silva, the ref awards a free kick. Direct free kick taken by Hayden Mullins.16:22
Unfair challenge on Jason Roberts by Patrick McCarthy results in a free kick. Ian Harte has a direct shot on goal from the free kick, Julian Speroni makes a comfortable save.14:48
Corner taken by Jobi McAnuff.13:18
Glenn Murray provided the assist for the goal.13:18 Goal scored
Goal! - Wilfried Zaha - Reading 0 - 1 C Palace Wilfried Zaha finds the back of the net with a goal from inside the penalty box to the bottom right corner of the goal. Reading 0-1 Crystal Palace.11:07
Header from just outside the box by Hal Robson-Kanu misses to the left of the goal.10:17
Foul by Stuart O'Keefe on Jason Roberts, free kick awarded. Mikele Leigertwood takes the direct free kick.7:28
The offside flag is raised against Jason Roberts. Julian Speroni restarts play with the free kick.6:55
Corner taken left-footed by Ian Harte, Patrick McCarthy makes a clearance.4:54
Stuart O'Keefe concedes a free kick for a foul on Jason Roberts. Ian Harte shoots direct from the free kick.4:24
Glenn Murray concedes a free kick for a foul on Shaun Cummings. Adam Federici takes the direct free kick.3:11
Mikele Leigertwood gives away a free kick for an unfair challenge on Jonathan Parr. Direct free kick taken by Stuart O'Keefe.0:00
The match has kicked off.
Live data and text provided by our data suppliers