Tied at 114 with just more than a minute to go, Davis sank two free throws to put Golden State ahead for good. He then made a three-pointer and Monta Ellis scored the Warriors' final points.
It had looked earlier like Golden State would cruise to a double-digit win. Roberson scored 19 of his 28 points in the second quarter, as the Warriors took a 70-59 lead -- their biggest of the night -- into halftime.
But Nuggets' star Carmelo Anthony narrowed the gap with 13 points in the third quarter. He had 25 points to lead Denver, while Troy Murphy scored 10 points and grabbed 14 rebounds for Golden State.
The game drew 12,000 fans to the 17,000-seat Monterrey arena. All eyes were on Mexican Eduardo Najera, who started for Denver, scored three points and had four rebounds.
With Najera on the bench with four minutes to play, the raucous crowd cheered for him to return to the court. Coach Nuggets George Karl obliged, but Najera wasn't a factor down the stretch.
Saturday's contest was the NBA's 17th game in Mexico since 1992, but the first in Monterrey. The NBA last played in Mexico in 2003, when the Utah Jazz beat the Dallas Mavericks in a preseason game in Mexico City. Najera, then with Dallas, was also on the losing end of that contest.