Rowan Vine shrugged off a fine for turning up late as he hit two goals to help Luton Town break leaders Reading's long unbeaten run.
Things had looked bleak for the Hatters when Steve Coppell's men scored after just 20 seconds through Kevin Doyle following Leon Barnett's mistake.
But Barnett and the hosts dramatically improved to lead 2-1 at the break through Vine's seventh and eighth goals of the season, before ex-Royal Dean Morgan hit a third in the second half. Doyle reduced the arrears late on, but Luton hung on for the win.
The result revived Town's fading play-off hopes, but more significantly inflicted a first defeat upon Reading since the first day of the season, an incredible 34 league games ago.
Town knew they would have their work cut out against the runaway league leaders, but they couldn't have expected to be a goal down within just 20 seconds.
Almost straight from kick-off the visitors attacked down the left through Bobby Convey, whose cross was missed by Barnett, allowing Doyle to take a touch before slotting past the shell-shocked Marlon Beresford.
With Luton left reeling by the early blow, the Royals attacked again when John Oster and Kitson combined to set up James Harper to curl just past the post from 20 yards.
Town finally got to grips with the table-toppers and threatened Reading's goal when Carlos Edwards played in Steve Howard to shoot wide on the stretch from 14 yards in the 12th minute after Kevin Nicholls' shot had been blocked in the build-up.
A minute later Howard glanced a header wide from Kevin Foley's cross after the 21-year-old had raced on to his own header on the right.
And Howard then worked Marcus Hahnemann with a 20-yard drive seconds later after running on to Morgan's weighted pass.
Gaining confidence after the flurry of chances the Hatters then levelled matters in the 20th minute when Vine played a delightful one-two with Howard, advanced into the area and coolly lifted the ball over Hahnemann from 15 yards.
Five minutes later Town went ahead when the busy Howard laid off for Edwards to find Foley down the right and the ex-Luton trainee pulled back perfectly for Vine to sidefoot home into the corner from seven yards for his fifth goal in five games.
Reading countered with an 18-yard Oster shot from Graeme Murty's cross that was well saved by Beresford in the 36th minute.
Luton pushed on for a third and should have got it a minute later when Ahmet Brkovic nodded back Nicholls' deep free-kick into the path of Howard, who somehow struck the bar from three yards out.
The pressure continued with a Town appealing for handball in the area before Brkovic crossed acrobatically with an overhead kick for Barnett to nod home, only for the goal to be disallowed for offside.
Luton's good work was almost undone in an instant in the 39th minute when Doyle ran clean through on to a long ball and fell in the penalty area under the challenge of Markus Heikkinen, but referee Kevin Wright ignored Reading's penalty claims.
Luton started the second period as they finished the first and Brkovic saw a curling 16-yard shot well saved in the 49th minute, but the effort would not have counted anyway due to foul by Vine.
There was nothing illegal about Luton's third two minutes later though as Morgan showed great desire to bundle his way through two challenges in the middle of the park and then take a pass from Howard, before calmly placing the ball past Hahnemann with his right foot from the edge of the area to score against his former club.
Reading huffed and puffed as the game wore on, but never seriously threatened the home goal until Foley gifted the ball to substitute Stephen Hunt, who crossed for Doyle to nod home in the final minute.