Neuvirth made 45 saves and stopped the final 28 shots he faced after the Blue Jackets pulled within two goals for his second win in the past six games despite a save percentage around 95 percent.
"He played another strong game for us," Buffalo coach Ted Nolan said.
The victory was not without a cost for the Sabres (18-38-5).
Center Zemgus Girgensons, who played in the 2015 NHL All-Star game, had a goal and an assist before leaving midway through the game after a slap shot from Columbus defenseman James Wisniewski hit him on the right ankle.
Nolan fears it could be a long-term injury.
"It doesn’t look very good," he said.
Forward Tyler Ennis also left after sustaining a lower-body injury.
The Blue Jackets (26-29-4) started rookie goaltender Anton Forsberg and the Sabres took advantage of his shaky performance.
The Sabres entered the game averaging an NHL-low 1.7 goals-per-game and had scored one goal in five of their past six games, but pounced on Forsberg, who made 27 saves in his fifth NHL game.
Forsberg allowed four goals on the first 15 shots, but settled down after that. He is 0-4-0 with a 4.69 goals-against average and a .866 save percentage.
"He responded good in the second half of the game," Calvert said. "He’s a young guy. We wanted to get four or five goals for him tonight and get him the win but it didn’t happen."
"Every time we win there’s a reason and excuses why we win and there’s excuses why we lose too," Nolan said. "They say, ‘Hey, they’ve got a weak goalie, that’s how you won.’ A win’s a win and we’ll be happy with it."
Forsberg struggled in the first period, flubbing an easy shot by Hodgson, then getting played on a shorthanded goal by Girgensons, and the Sabres took a 2-0 lead despite being outshot 13-9 in the period.
Hodgson scored his third goal, first in 28 games, with a soft backhander from the left wall. Forsberg had a clean look, but the puck glanced off his glove, then his body before going into the net at 9:30.
"When you’re used to doing something it’s tough when the pucks aren’t going into the net," Hodgson said of his goalless streak.
Shortly thereafter, the Blue Jackets were on the power play when Wisniewski tried to knock a pass down at the blue line with a high stick.
The puck traveled to the other end and Columbus defenseman Cody Goloubef elected not to touch it to avoid a whistle. Girgensons came in and took the puck.
Forsberg came out of the net, but Girgensons went around him to score his 15th goal at 14:42.
The goals ruined the Blue Jackets’ plan not to repeat their start from Sunday against the New York Rangers when they trailed 3-0 before losing 4-3 in a shootout.
"It’s not winning hockey," Columbus forward Nick Foligno said. "Falling behind by that many goals, it’s not easy to come back from in this League. We’ve got to find a way to make our starts better. We have to give ourselves a chance to win and we haven’t done that the last couple of games."
The Blue Jackets cut the deficit in half 1:18 into the second period when Calvert one-timed a blind pass from Brandon Dubinsky for his 10th goal.
The Sabres responded 42 seconds later to take a 3-1 lead when Pysyk scored his second of the season with a slap shot from near the blue line that deflected off Calvert.
"That was a deflating goal," Columbus coach Todd Richards said.
Stewart scored his 10th goal to give Buffalo a 4-1 lead at 4:30 during a 5-on-3 when he beat Forsberg near-side from the left dot.
Richards said he was close to pulling Forsberg but decided not to.
"Part of it as is seeing if he battles through it and how the team battles through," Richards said. "I liked the way he responded."
Connauton scored at 7:42 of the second to make it 4-2 but that was it and the Sabres preserved rare advantage.
"It was a different feeling," Neuvirth said. "We’re definitely not used to protecting the lead. We did what we had to do in the third. We didn’t give up any odd-man rushes or breakaways."