Rovers manager Paul Dickov acknowledged his side only had themselves to blame.
“It was definitely a self-inflicted defeat,” he claimed.
“We were one up at half-time without playing as well as we have recently, and should have been further in front.
“But if you make mistakes you get punished. All three goals were individual errors that cost us dearly and we have to learn from that.
“We’ve got a game on Tuesday night and we will go again. We are better than that, especially at home.
“It’s a game we should have won, but we have to stay positive and believe in ourselves.
“Federico Macheda is lethal in the penalty area and you just can’t allow him chances like that .
“We should know because we had him on loan ourselves earlier in the season.”
Birmingham were lacklustre in the first half in which Doncaster took the lead when defender Paul Quinn fired home at the second attempt following a free-kick from David Cotterill in the 36th minute.
But there was a huge turnaround in the second half after a bad mistake by left-back James Husband led to an equaliser as Rovers crashed to their first home Championship defeat in nine games.
Husband dwelt on the ball and was robbed by on-loan Manchester United striker Federico Macheda, who lashed home the equaliser from a tricky angle in the 57th minute.
Lee Novak broke away to put City in front after 71 minutes and Macheda sealed the comeback with a fine header five minutes later.
Birmingham manager Lee Clark was at a loss to explain the disparity between his side’s home and away form.
It was the Blues’ ninth win on the road, while they have only won two at home and Clark said: “I just don’t know what it is, but I’m quite embarrassed by our home form.
“We shouldn’t feel under more pressure at home because we’ve got fantastic support and the fans have never turned on the players or myself.
“I’ve tried everything from a sports psychologist, different training methods, different suits. I’ve even considered going naked to home games, but maybe that’s not such a good idea.
“It wasn’t looking good in the first half but the players came out after the interval and put in a very good performance. We made changes and just matched them up in the second half, won our individual battles and played on the front foot.”
Doncaster Rovers: Johnstone, Coppinger, Neill, Quinn, Husband, Duffy (Robinson 71), Furman, Keegan, Cotterill, Brown, Sharp. Unused substitutes: Middleton, McCullough, Maxted, Wakefield, De Val Fernandez, Stevens.
Birmingham City: Randolph, Caddis, Thorpe, Robinson, Reilly, Spector, Huws (Adeyemi 66), Burke, Ibe (Zigic 46), Novak (Shinnie 80), Macheda. Unused substitutes: Doyle, Packwood, Lee, Ferguson.
Referee: D Webb (County Durham).
Man of the match: Federico Macheda.