Hi,
3.-Bc5: Here you could play 4.Nd5 since Qd8 is met by 5.Nxe5 and 4.-Qd6 is met with 5.d4! intending Bf4 with Nxc7+ to painfully follow.
After you miss this chance his opening makes some sense, since you can't really harass the queen and it's not that easy to get d4 in any more with the knight on c3 (blocking the idea of playing c3 and d4).
5.d3 is fine (though you could castle as well), it's not weakening anything. If the knight was not on f3 and you played 5.f3, now that would weaken the a7-g1 diagonal
6.-a6 does not make much sense (neither did 5.-h6, Bg5 was not really a threat). At this point you should think of ways of opening the position while he is still undeveloped. 7.Be3 makes a good impression as it makes way for d4, and if he captures you get the f-file and win time on his queen.
8.Qd2: nooo why self-pin like that. Moves that make more sense to me include:
8.Na4 - Most likely the best, heading for the b6 square which he has carelessly weakened. 8.-b5 9.Nb6 is not a problem. Also prepares c3 and d4 as an added bonus., 8.d4 trying to open up the center, admittedly if he plays 8.-d6 it still isn't trivial to run Black over
8.Nd2 to prepare 9.f4
Nevertheless you play quite sensibly after that and end up with some advantage. After 13.Qd6 I think he could perhaps play 13.-Nd7 and not lose a pawn. Note the queenside situation and how a6 is still causing him headaches: he cannot really consider Bxc3 since that would leave all the queenside dark squares so weak (b6 and c5 would be nice potential locations for the White Bishop for example). Also note that he cannot play 13.-Qxd6 14.Rxd6 Ng6 due to 15.Rxg6
After 13.-Ng6 you could also be fancy and play 14.Bxh6 with some tactics on g6 again, what you played is no worse though
16.Be3: You are a pawn up with a better structure so basically you're winning but there's still a lot of work to do. After 16.-Bg4 I think you should play 17.Be2, it's a little passive looking but it keeps the Kingside pawns (which you would like to advance in the future) intact.
20.Kh1 is interesting but I am not sure it's necessary. Nothing much wrong with 20.Be2, it's still a pawn. You could try to follow up with Kh1/Kh2 and Rg1-Rg4 after that. 20.f4 is also possible, as after exf4 21.Bc5 Black's position looks pretty unhealthy
22.-Kf8 is ??, he should play probably 22.-Kh7 first and then try to trade rooks with Rg8 before you can double on the g-file and mate him (22.-Kh7 23.Rg4 Ng6 24.h4 Nd7 or Rg8 for instance). I don't understand how he "got out of it", he lost an exchange which should = lost the game
after 25.-Ra7 you should think how to beat him down further. Attacking f7 looks actually very good and you probably should get on with that via 26.Bh5 (26.Bc4 is more natural but allows 26.-Nf3 with the idea 27.Rg7 Ng5 threatening Kf8) followed by Rg7 and it looks to me like Black's position just falls apart.
29.f3 - now that he traded off the knight you could play 29.Bg4 and penetrate on d7
I assume the rest is time trouble randomness