Michael Frolik and Evander Kane each had a goal and an assist, while Chris Thorburn also scored for Winnipeg (16-10-6). Frolik's goal was short-handed, while Kane found the back of the net on the power play.
Jets goalie Ondrej Pavelec made 27 saves in his 300th career start as Winnipeg outshot the Sabres 36-28.
Buffalo (13-17-2), which got a power-play goal from defenceman Nikita Zadorov, was coming off a 5-4 shootout win at home over the Ottawa Senators on Monday night.
Michal Neuvirth stopped 31 shots in net for the Sabres.
The win was the first for the Jets in their four-game homestand. They lost 4-3 in overtime to Colorado and 4-1 to Anaheim last week and will host Boston on Friday.
Buffalo scored the only goal in the first period, but Winnipeg responded with three goals in under five minutes in the second to take a 3-1 lead heading into the third period.
The Sabres didn't get their first shot on net until 10:32 into the game before having three power-play opportunities in the period.
Buffalo made good on a scoring chance with 44 seconds left in the period. With Winnipeg winger Blake Wheeler in the penalty box for slashing, Zadorov's shot from the bottom of the circle got past Pavelec, who had Sabres winger Chris Stewart in front of him.
The Jets had one power play in the opening period and were outshot 12-8, but started rolling in the second.
Scheifele's fifth goal of the season was scored as Zadorov left the penalty box for delay of game. The second-year centre's wrist shot from near the right faceoff dot went high on Neuvirth's stick side at 9:31 to tie it 1-1.
It was then Scheifele's turn to go to the box for a questionable goaltender-interference penalty, but it didn't prove costly.
Buffalo turned over the puck and 11 seconds later Jets defenceman Jim Slater made a pass across the front of the net to Frolik, who also sent a high shot past Neuvirth for his seventh goal of the season.
Mathieu Perrault set up Scheifele's second goal of the game when he made a pass through Buffalo defenceman Tyson Strachan's feet and Scheifele scored at 14:17 for a 3-1 lead. The assist extended Perrault's point streak to five games, with one goal and four assists.
Winnipeg carried a power play into the third period from Andre Benoit's slashing penalty and it led to Kane's fifth goal of the season at 1:11, with Wheeler and Scheifele drawing assists.
Thorburn used a rebound from teammate Anthony Peluso's shot to send a backhand shot past Neuvirth at 12:39.
Notes: Jets head coach Paul Maurice announced after the morning skate that second-year defenceman Jacob Trouba is out until February with an undisclosed upper-body injury. Maurice said it was a "pre-existing condition," but wasn't related to the neck injury Trouba suffered last season … While Trouba went off the roster, defenceman Grant Clitsome went back on after missing five games with an upper-body injury and assisted on Scheifele's first goal … Jets' Dustin Byfuglien, who's been moved to defence while the team fights blue-line injuries, was playing in his 300th game with the franchise and 560th career game … Sabres centre Mikhail Grigorenko made his season debut. The 20-year-old Russian was Buffalo's first pick (12th overall) in the 2012 NHL entry draft.