Ryan McLeod scored his first career hat trick and Ukko-Pekka Luukkonen made 35 saves as the Buffalo Sabres beat the Carolina Hurricanes 4-2.