San Francisco Giants' Mark Canha hit a walkoff sacrifice fly to defeat the Detroit Tigers, 3-2.