Match ends, Reading 2, Birmingham City 3.
Jeremie Bela netted his first goal in English football and set up another as Birmingham triumphed at the Madejski Stadium.
The French forward, who joined the Blues last month, rifled in a 25-yard free-kick to help his side clinch the points against Reading.
Birmingham went in front when Jude Bellingham's drive deflected off former Blues skipper Michael Morrison, only for Yakou Meite to head Reading level.
But Bela's strike restored the visitors' advantage and he then teed up Alvaro Gimenez to make it 3-1 before Lucas Joao grabbed a late consolation.
Reading had the better opportunities in a tightly-contested first half, with Matt Miazga heading wide and Meite miscuing after Garath McCleary had set him up.
However, Blues went ahead with a goal from nowhere in the 41st minute, Bellingham's effort taking a wicked deflection off Morrison to leave Rafael Cabral helpless.
The lead lasted only four minutes as Pele delivered a corner for Meite to make amends for that earlier miss with his fifth goal of the campaign.
In an end-to-end second half, Birmingham's Jacques Maghoma hit the bar before Bela put his side 2-1 up, crashing a free-kick into the top corner of the net.
Reading pressed hard for a second equaliser and George Puscas and Joao both squandered chances to square the contest again.
But Gimenez earned the Blues some breathing space in the 88th minute, finding the net with a left-foot finish before Joao stabbed home Reading's second deep into added time.
Reading manager Mark Bowen:
"We were poor. It's easy to say that we're missing our 'ball players' in John Swift and Ovie Ejaria and that was a big loss to us.
"But the players stepping in have got to be better in terms of passing, retaining possession and being braver on the ball. They were lacking today.
"I pride myself on my team picking up second balls but I thought we were so poor at that. We were sloppy getting into the game and then in possession.
"I said to the players in the dressing-room 'I've got no problem if you give the ball away'. But you then have to go and get it again and be brave."
Birmingham head coach Pep Clotet told BBC WM 95.6:
"It was a huge step forward to where we want to be. The whole team believe in what we're doing, we keep playing our football, we keep going and in the end we get a fantastic result.
"Jeremie has this kick, we've been working a lot with him, preparing a lot of free-kicks - direct and indirect - and it's good that it paid off. From that distance, it was perfect because it's very difficult for the goalkeeper.
"Josh (McEachran) helped us massively on those build-ups because, if you compare it to our game against Millwall, we struggled a little bit to get the ball from the back to the midfield and forwards. Josh had that role today and accomplished it very well.
"Everyone in this team is contributing and, when the moment comes, they're ready. when we score one goal, we want the second one and when we have the second, we want to go for the third."
- 33Cabral Barbosa
- 5MiazgaSubstituted forBoyéat 45'minutes
- 29Tuncará GomesSubstituted forAdamat 76'minutes
- 12McClearySubstituted forLucas Joãoat 66'minutes
- 47PuscasBooked at 90mins
- 31Lucas João
- 14Clarke-SalterSubstituted forHardingat 17'minutes
- 7CrowleySubstituted forMaghomaat 30'minutes
- 16McEachranBooked at 62minsSubstituted forJutkiewiczat 69'minutes
- Tim Robinson
- Shots on Target
Second Half ends, Reading 2, Birmingham City 3.
Corner, Birmingham City. Conceded by Andy Rinomhota.
Goal! Reading 2, Birmingham City 3. Lucas João (Reading) right footed shot from very close range to the centre of the goal. Assisted by Charlie Adam following a set piece situation.
Foul by Lukas Jutkiewicz (Birmingham City).
Michael Morrison (Reading) wins a free kick on the right wing.
Corner, Birmingham City. Conceded by Liam Moore.
Jacques Maghoma (Birmingham City) wins a free kick on the left wing.
Foul by Charlie Adam (Reading).
George Puscas (Reading) is shown the yellow card for a bad foul.
Harlee Dean (Birmingham City) wins a free kick in the defensive half.
Foul by George Puscas (Reading).
Goal! Reading 1, Birmingham City 3. Álvaro Giménez (Birmingham City) left footed shot from the centre of the box to the bottom left corner.
Attempt blocked. Álvaro Giménez (Birmingham City) left footed shot from the right side of the box is blocked. Assisted by Jérémie Bela.
Attempt blocked. Andy Yiadom (Reading) right footed shot from the right side of the box is blocked. Assisted by Lucas Boyé.
Attempt blocked. Yakou Meite (Reading) header from the right side of the six yard box is blocked. Assisted by Charlie Adam with a cross.
Attempt blocked. Lucas Boyé (Reading) right footed shot from the centre of the box is blocked. Assisted by Lucas João.
Attempt saved. Jacques Maghoma (Birmingham City) left footed shot from the left side of the box is saved in the bottom left corner. Assisted by Álvaro Giménez.
Attempt blocked. Lucas Boyé (Reading) right footed shot from outside the box is blocked. Assisted by Andy Yiadom.
Foul by Ivan Sunjic (Birmingham City).