Ray Durham had three hits, including a bases-clearing double in a four-run sixth, and the San Francisco Giants rallied for a 9-4 victory Friday night that snapped the Kansas City Royals' five-game winning streak.