No white k-side attack has materialized to hinder black's plans, and now the q-side pawn mass is in motion. Stockfish rates black's position at +4.12.
23. Bf4g5 Qd8f8 24. Ng1f3 b4 25. Qc2a4 b3
This is a big risk; I figured that 2 connected passers with rooks behind them would be worth the knight. I also figured that if the white queen took the knight, it might even get trapped behind the lines. However, if I had this to play over again, I'd play ... Ra6 defending the knight.
With queens off the board, black is safe from any k-side attack. Surely, a q-side pawn advance will prove decisive now.
30. Bg5c1
! A fine move. The dark-squared bishop, which had no future on the k-side, it is brought over to the q-side, where it plays an important role holding back the black q-side pawn majority. It also prevents the black rook from taking the d6-pawn on account of Ba3 skewering the rook against the king.
30... b2
There is no time for ...Ra6 to support the advance of the a-pawn, as white would immediately reply Ba3 and leave it there, halting the pawns' advance indefinitely. So, a pawn must be sacrificed to gain entry for a black rook on the b-file. 30... Ke8, which looks tempting, fails to Bxd5!
Black hopes to turn the c-pawn into a winner, but he is now effectively a bishop in minus and Stockfish rates white better now at +5.73.
35. Ba3b4 Kf8e8 36. Bg2f3 Bd7b5 37. Bf3d1
With both white bishops and the rook now on the q-side, black's hopes of promoting a pawn are very dim.
37... Ke8d7 38. Bd1xb3 cxb3
In for a penny, in for a pound. Black sacs more material to gain back two connected passers.
39. Bb4a3
This scotches any hope of black advancing the q-side pawns. So black is now simply a rook in minus. His last hope is to keep the position closed to prevent the rook from entering the black camp.