A powerful third quarter saw Golden State outscore Portland 39-24 to level up at 89-89 with 12 minutes to play.
The deficit was erased but Portland pulled ahead when play resumed, leading by six points in the final four minutes.
But the Warriors launched a 10-0 run and moved ahead with 80 seconds left on the clock.
A three-pointer from Curry put the teams at 112-111 before Draymond Green added another two to secure the win.
The Warriors are now 2-0 up in the best-of-seven series.