I agree with
@tpr, you play too fast. You spent 20.5 seconds on 21. Bd2. In a 10+7 game, you can afford to spend longer. The problem is, how do you know to spend longer?
In this situation, you clearly have an advantage in that your pieces are much better placed; you are down three pawns but up a piece; in such a position, I would be looking for checkmate opportunities if I were you (otherwise Black trades pieces and your piece may not be so good against his pawns in the endgame). So, as soon as Black plays 20...f6, you should be thinking "that pawn move is pretty weakening, I wonder if I can exploit those weaknesses?" The "weakness of the last move", in this case, is that the move ...f6 undefends g7 (previously, the f-pawn was just blocking sight of the g-pawn; now it isn't). So that's how you might have found the idea of 21.Qe7, doubling on the seventh rank and winning the game.
So it's a combination of mental attitudes: you thought "my Bishop is attacked, I should move it away", which is not an attacking idea, and you didn't spend enough time to find the right move, even though spending more time in any position around that point would have been more than justified: you have a dominating position, and if you find a winning move, then you win! (By the way, I notice that you have a very nice "training" rating, indicating that you're not bad at finding winning moves; but again, you just need to spend more time in those winning positions.)
All that being said, well done on getting to that position in the first place. Next time, spend a bit more time to find the winning move, and I'm sure you'll come out the well-deserved victor!