Moves 20-25 it looks like you would need a plan. Up to that point you unambitiously traded everything, which is not bad per se, but doesn't win games either. Instead of Be3 and Bf4 which achieve nothing, develop the Nb1. Ideally you'd like both of your knights to hit after e6 (the black weakness), so move them towards c5, f4, or g5. This will take a while, but it's fine as black ain't doing much either.
e.g. 20. g4 would chase the knight to an awkward position, and give you the f file. 24. Nh4 also is possible, with the aim to pass your e pawn if black plays exf5, or maybe you can land on Ng6. where it would be superbly placed (with the f5 backup square also very good, hitting e6).
26. c4 looks like a plain mistake, dropping a pawn for no compensation. 29. Nxh4 also looks wrong, leading straightforwardly to a lost endgame. 29. Qxd4 looks okay instead, winning back your pawn and giving you a sharp but equal endgame.