How could I have pulled this out?

Your post prompted me to have a have a second look at the game if interested in my analysis I can post it here I am far from an expert but might be worthwhile.

33. b5 was a mistake. It allows black to get his king in and help get his pawn majority moving.
While it is true that black could have played a5 on the next move removing the b pawn from that square you don't lose tempo in that situation and you have then created a passed pawn yourself which could create problems.
Best is maybe r-d8 or h8 although my feeling is that you are already lost.
After going just one move further it does seem to be confirmed. After k-d5 there are no productive moves for white it seems. If c3 then d3 and black has created his far advanced passer and has ideas like e5, rxe5 r-e2 or 1 and penetration from behind. He has a more active rook an advanced protected passed pawn and white will be doomed to passivity