Jack Marriott scored a superb first-half hat trick for the Royals but it was not enough as they let a two-goal lead slip.
The Hatters had taken an early lead through Jake Richards but Marriott pounced in the eighth, 31st and 38th minutes to complete his treble.
Luton quickly made it 3-3 after the interval with Kasey Palmer scoring twice, and grabbed a dramatic winner in the sixth minute of time added on through Kodua.
In a frantic opening, Luton struck first when Richards cut in from the right and guided a low shot past home goalkeeper Joel Pereira.
Reading hit back swiftly when Luton skipper Kal Naismith's backpass fell short and Marriott nipped in to slot past Josh Keeley.
As Town wilted, Marriott pounced twice more before the break.
He first drilled a left-footed drive inside Keeley's near post and then finished from inside the area after excellent work by Kyreece Lisbie.
But battling Luton were soon level in the second half, with Palmer thumping the ball into the ground and past Pereira in the 50th minute.
Palmer struck again from close range two minutes later after Nahki Wells had done well to set him up.
With the clock in the sixth minute of stoppage time, Kodua slammed home after a frantic goalmouth scramble.
- Watch FREE League One highlights | Latest EFL news and rumours
- Not got Sky? Latest Sky Sports deals or stream EFL games with no contract📺





