San Francisco scored three runs in the second inning, but the St. Louis Cardinals stormed back to hand the Giants a 6-3 loss Friday at Oracle Park.