The S&P 500 rose 54.51 points, or 1.5%, to 3789.99, snapping a five-day losing streak. U.S. government bonds rallied after sliding in recent weeks in a selloff that had pushed yields to their highest levels in more than a decade.