6...Ng4 7. d4?! exd4 8. Nexd4 Nxd4 9. Nxd4 Qf6! 10. Be3 Nxe3 11. fxe3 Qg4+ and 12...Qxe4. I hope you saw this line in analysis? Well, not the whole thing, but at least 9...Qf6 was important to see, this sort of move, like Qf3, appears in the Two Knights' Defence occasionally. 6...Ng4 7. 0-0 is the correct defence.
Black wasted time with ...a6 and ...b5, which allowed you to develop faster. However, if he had played some useful moves like ...Re8 instead, you would need to defend e4 and castle quickly. Just saying that as a random side note.
Probably something like 16...Ng4 aiming for kingside attack was necessary, although black's position is already quite bad at move 15. White can just roll the pawns down the centre.
20...dxe5 21. fxe5 Rxe5 and black is saved. I don't think I'm missing any funny tactics here. So why commit positional suicide by 20...f6?? After that, you won quite quickly and easily.
6.Ne2, I'm not a big fan of tired old simple rules, but here it really applies. Don't move a piece twice in the opening. Also, your knight on c3 covers nice squares. Moving it backwards to e2 just makes a good solid piece worse. You want to play d4? Well black wanted to play d5 and you are helping him.
20...dxe5 Remellion is right about this.
End is ugly.
Work on your tactics some. You missed 17...Nxe3.
Also, earlier you mention your nice pawn center which is very true, then you are willing to give it up.
All the important things have been said. Now for the unimportant :
14.d5 (?) is dubious. It looks like it wins space, but in reality it gives up the e5 square, hence allowing Black to move more easily. 14.Ng3 instead and White's advantage is correct.
17.Qc2 ? : the fork put aside, why not play 17.Bxc4 where black's pawn on c4 is so vulnerable that he is for all practical purposes dead ?
20.e6 ! was forced and good.
24...Qb6+ 25.Kh1 Rc8 (either rook) and White has still a lot of work to do before he scores the full point.