Semin tied it at 2 on a power play with 8:12 left, and Tlusty scored with 6:17 to go.
Jeff Skinner had a first-period goal — his 26th — to help Carolina win its second in a row after losing seven of eight. Nathan Gerbe had an empty-net goal with a second left.
Cam Ward made 21 saves, making his second consecutive start after backstopping the Hurricanes to a 3-1 victory over the New York Rangers on Tuesday night.
Tyler Ennis scored on a penalty shot and Drew Stafford added a goal for Buffalo. Michal Neuvirth made a season-high 51 saves in his second start for the Sabres since being acquired in a trade with Washington on March 5.
He's only 17 but he can see the ice so well and he moves the puck and goes to the open ice all the time, so I just think he's a player that is ready to play in the NHL. I'm really looking forward to coaching someone like this.
— U.S. National Junior Team coach Ron Wilson on Auston Matthews, the projected No. 1 pick of the 2016 NHL Draft