Tuch had two assists, and Ukko-Pekka Luukkonen made 34 saves for the Sabres (9-11-0), who have won their past two games after an eight-game losing streak.
"He's progressed from last year to this year," Buffalo coach Don Granato said of Luukkonen. "He looks like a different athlete. … Obviously, he's gained the wisdom of experience playing more games and more minutes in Rochester [in the American Hockey League]. He's used those as opportunities to be better each time he's come back up here."
Brayden Schenn and Pavel Buchnevich scored, and Jordan Binnington made 26 saves for the Blues (10-9-0), who lost for the first time since Nov. 8.
"I think we didn't play our game at all, what we've been doing in the past seven," Schenn said. "We probably thought we would come here, and we were feeling it a little bit, and maybe thought the game was easier than it is. There's no guarantee wins in this league, and we turned over the puck too much and fed into their offense and their highly skilled and dynamic young guys, and they took it to us tonight."