Qa1 was the blunder. White was ahead until this. Although maybe black had adequate positional compensation for the pawn, I dunno.

Maybe the position's drawn? I'd be interested to hear what the analysis says.

Black has a nice advantage even if white doesnt blunder. White's position is swiss cheese, there is no chance of pushing the pawn even if black plays passively. Black wont play passively -- the upcoming D3! is fairly strong.

Of course, it is an opposite bishop position, so there is hope for white of defending. Iphone Shredder gives: 29. rf2 (otherwise d3 is a bigger problem) d3 (anyway); 30. rg2 d2 (and the pawn isnt getting taken unless white gives up the exchange for it)

Of course, 30. rg2 seems a little suspect. But its hard to come up with an alternative. If 30. a5 be3 31. rg2 (what else) d2, and once again that pawn is not going anywhere and will tie up white's pieces until white sacs for it. If 32. a6 qd4 and the pawn is dead it if it moves again.

Computer Analysis (~2500 strength)

White's 7. Qe2 is listed as a mistake. And so was the Black response of 7...d4 (computer preferred 7...dxe4)

White's 19. Nxb7?? is listed as blunder. And Black's 20...Rxb2 is also a blunder, though not enough to lose the advantage. Computer prefers Qb6 and it's easy to see why. I was trying for a lame cautious version of this.