You played the opening quite badly and you were lucky your opponent didn't capitalise on it.
6...g6 loses a pawn to dxe5.
17...f5 gets you into all sorts of trouble after Ba4
You managed to take control around move 20 and did a pretty good job until you blundered.
40..b5 was not a bad move probably not best but it didn't get you in any trouble
45..Kb4 was not a blunder at all in fact it was a very good move you just needed to follow it up with Ka3, the blunder was your 46th move.
You played a decent game and thanks to your opponent not knowing pawn endgames you got a win.
In this game, I know I didn't play at my absolute best. The only reason I ended up winning was because my opponent clearly didn't know what he was doing. The endgame should have been a draw, but my opponent made many successive errors resulting in me regaining my queen and checkmating him. Observe.