Eric Haase broke a tie with a two-run shot in the sixth inning, and the Detroit Tigers held on to defeat the San Francisco Giants 3-2.