Did my opponent blunder, or was it just good play on my part?..

Sort:
ntucker1111

Biarien

Well, yes, he blundered, though it was of course good play to take advantage of it.

21... Kh8 is to move the king out of the pin from the rook on g2.  If he doesn't, you can play Rdg1 and pile up on the pinned bishop.

JiMmzeH

Seems like he outplayed you all game except for the oversight at move 28. Just look at the position after only 3 moves; black has 2 knights developed versus your 0 pieces developed. His position from then on was substantially better, until of course he lost it in one move.