Blues left it late at the Madejski Stadium to record their first league win on the road in 2015.
Clayton Donaldson's 16th goal of the season with seven minutes to play ensured that the visitors took all three points back to Birmingham.
Jonathan Spector, Diego Fabbrini and Wes Thomas came into the side as Gary Rowett experimented with a 3-5-2 formation.
The first-half had a feel, certainly in the opening stages, of a game contested by two sides not in the promotion or relegation picture.
But Blues had goalkeeper Darren Randolph to thank for keeping the scoreline goalless at the break. The Irishman was on hand to deny Reading's front line with a number of fine saves.
The hosts tried to seize control after the restart but strong defending from Morrison and co prevented their opponents from carving out any clear cut chances.
A couple of substitutions from Rowett saw the pendulum swing in Blues favour. On came Dyer and Gray with the latter almost making an immediate impact. The winger drove into the box, worked a yard for himself only to see his effort kept out by Adam Federici.
Just five minutes later Blues found the breakthrough. Moments after Shinnie was denied by the Reading keeper, Stephen Gleeson whipped in an inviting cross which Donaldson accepted with aplomb to head in what proved to be the winning strike in front of a buoyant away end.