Champions Reading saw their promotion party tainted somewhat as they fell to only a second defeat in 19 at the hands of a Birmingham City side who go into the play-offs full of confidence.
The loss, however, will be the last thing on the minds of Reading's players and staff when they deservedly lift the npower Championship trophy back in Berkshire tomorrow after a superb season on the back of last May's play-off agony at Wembley.
But Birmingham, unbeaten in nine, will take great heart from the triumph, which crucially moves them up into fourth place and with home advantage in the second leg of the play-offs against Blackpool - with the first leg at Bloomfield Road next Friday.
Substitute Adam Rooney grabbed the opener in the 24th minute before Pablo Ibanez, having twice cleared off the line, headed against a post.
Blues goalkeeper Colin Doyle, who saved two penalties from Chelsea's Juan Mata in the FA Cup earlier this season, kept out Ian Harte from the spot, and it was left for Wade Elliott to seal victory with a penalty of his own.
City could have inflicted Reading's heaviest defeat of the season in injury time but Elliott saw a second spot-kick parried away by Adam Federici.
With Birmingham's play-off place already all but mathematically secure, boss Chris Hughton was able to rest star performers Marlon King and Chris Burke to the bench while Jordon Mutch, carrying a slight ankle knock, was also omitted.