Few inaccuracies.
3. d4 is a much stronger move. Play could have continued 3...exd4 4. Nxd4 Nf6 5. Nc3 with a much easier position to work with.
4. Be3 is a little bit weak. Nc3 is better as you can take advantage of the weak d5 square.
5. c4 is not good as this weakens your queenside. You should avoid moving too many pawns early in the game as well as avoid over extending you pawns when it isn't necessary. By dong this, you created a bad bishop for yourself. Again, I suggest Nc3, you want to develop that knight.
7. a3?! You shouldn't be attacking on the queenside. You should be attacking on the kingside, with Be2 followed by O-O. Watch the black knight though, it is very likely to go to g4.
15. f3? You freed your light squared bishop a few moves ago and now you are trapping it again. This is not a good move. I would defend with Bf3 simply because I do not want a bad bishop with no squares to retreat to if black should decide to activate their knight because this position is very closed.
37. Be4! This stop the pawn storm and checks the King.
38. hxg3 is stronger. After gxg3 by black, 39. Rf7!
Good game! I enjoyed going over it, of course, I'm not that much of a stronger player at online chess. Online chess for me is really weird. I prefer OTB which I am much better at.
Here's a game I played recently in live chess. I won this game, but I think I could have done better. Please analyze it and tell me where I made mistakes. I played as white.