A poor first half from the hosts saw City take a merited 2-0 lead, both goals coming from excellent strikes from Toral in an eight-minute spell.
Reading got back into it in the 61st minute, when Yakou Meite touched in from close range, and had a chance to equalise 10 minutes later.
After four successive defeats in October and November, Reading had registered two draws and two wins.
Birmingham ended a sequence of six games without a victory by edging past Bristol City 1-0 at Ashton Gate at the weekend.
They suffered a blow during the pre-match warm-up, when forward Jeremie Bela picked up an injury.
Jonathan Leko replaced him, with Adam Clayton a late addition to the substitutes' bench.
As at the Forest fixture on Saturday, 2,000 home fans were allowed to sit socially distanced in the East Stand at the Madejski Stadium.
They applauded generously when both teams and their staff took a knee before kick-off.
Reading provided them with little to cheer once the game had started, their forward movement almost non-existent in the early stages.
In contrast, Birmingham were lively and imaginative – especially through the darting thrusts of striker Scott Hogan.
Reading finally awoke midway through the half, with centre-back Michael Morrison shooting weakly wide.
But Birmingham deservedly went in front just before the half-hour mark following a good cross from defender Kristian Pedersen.
Toral collected the ball on the edge of the area before arrowing a fine effort past keeper Rafael and in off a post.
Hogan and Leko had chances to extend City's lead, the former forcing a fine save from Rafael from his powerful header.
Toral doubled his personal tally eight minutes before the break, cutting in from the right and beating Rafael with a fierce drive.
The second period followed a predictable pattern, with Birmingham mostly content to sit back.
Reading assisted them in that cause, again showing little penetration up front, but they grabbed a lifeline just past the hour.
Andy Rinomhota crossed from the right and Meite managed to get ahead of his marker to guide home.
Reading could have levelled when Meite was brought down by Dean in the area, with the defender sent off for collecting his second yellow card.
But 14-goal top-scorer Joao's spot-kick, though firmly struck, was superbly pushed away by Etheridge – and Birmingham held on for their second successive away victory.