Buffalo's embattled leader had been a healthy scratch for the past 11 games -- and 16 times overall this season -- but he was added to the lineup because of defenseman Chris Butler's recent struggles.
Rivet responded by scoring his first goal of the season, putting three shots on net, and earning a team-high plus-2 rating.
"There's been a lot of mixed emotions that I've had over the last month or so," he said. "But those are things I'm going to work through. That's the type of person that I am. I was battling some tough situations. I'm happy that I was able to come out and help our team a little bit. If I can continue that, it's all I can ask for."
Ennis wasn't surprised with how Rivet came back and told the 16-year NHL veteran before the game he had a feeling Rivet would get that elusive goal.
"He played awesome," Ennis said. "The last month he's been really supportive in the room and has been a great leader. It was great to see him play well."
Sabres coach Lindy Ruff, though, seemed cautiously encouraged with Rivet's performance.
"I thought he was better," Ruff said. "I thought there was some defensive zone stuff I'd like to clean up."
Drew Stafford and Nathan Gerbe also scored and Derek Roy and Jordan Leopold added a pair of assists each for the Sabres, who rebounded from losses to the Florida Panthers and Tampa Bay Lightning over the weekend.
The Sabres scored three times in the first 20 minutes against Anaheim, which finished a stretch of five road games in seven days.
"They definitely had a lot more energy than we did," Ducks coach Randy Carlyle said. "We didn't show that we had much energy or sharpness."
Perry added a second goal, and backup Curtis McElhinney made 37 saves for Anaheim.
The Ducks, who won 3-0 at Boston on Monday, lost for the first time in five meetings with the Sabres. Anaheim went 2-3 on its road trip and will be off until after the Christmas break.
"You never think that after a first period you'd be down 3-0. It's tough to bear," Ducks forward Bobby Ryan said. "You never expect it."
McElhinney made his eighth start of the season in place of No. 1 goalie Jonas Hiller, who has played an NHL-high 32 games.
After the opening-period blitz by the Sabres, there were three fights in the second period. Ducks captain Ryan Getzlaf and Sabres center Cody McCormick fought immediately after the opening faceoff in the second. Five seconds later, Anaheim's Kyle Chipchura and Buffalo's Paul Gaustad dropped the gloves.
"It's all part of the motivation thing," Getzlaf said of the fights that failed to ignite Anaheim's stagnant offense. "It was a fact that I wanted to get my team going. I didn't feel we were ready to play the hockey game in the first period."
The Sabres stretched their lead to 4-0 on Ennis' second of the game and ninth of the season at 4:40 of the second. The rookie wristed a shot into the top-left corner from the left circle.
Stafford made it 1-0 with his ninth of the season on the power play 4:43 into the game, and Gerbe doubled the lead with his first this season, putting in a rebound from the slot.
Anaheim forward Jason Blake was then given a major penalty and was ejected after he hit Sabres forward Patrick Kaleta into the boards from behind with 6:24 left in the first. Ennis capitalized on the long power play with 3:03 to go to make it 3-0.
Rivet made it 5-1 with his first with 2:57 left in the game. Perry capped the scoring with a power-play goal with nine seconds remaining.
The Ducks recalled left winger Josh Green from AHL Syracuse after center Nick Bonino injured a foot against Boston. He is day to day. ... Sabres center Tim Connolly missed the game due to a fractured nose sustained against Tampa Bay on Saturday. He will be out at least a week. ... Miller got engaged over the weekend to Noureen DeWulf.