The Sabres had won six of their previous seven games, although that streak did not lift them out of last place in the Northeast Division.
Buffalo opened the first contest on its three-game road trip by taking the lead 4:07 into the first period on Jochen Hecht's wrist shot.
But Jean-Sebastien Giguere was perfect the rest of the way, stopping 22 shots.
Andy McDonald tied it with 4:27 left in the first period and Schneider scored on the power play midway through the second. Todd Bertuzzi and Corey Perry added goals to ensure the Ducks would end a two-game losing streak. They had lost four of their previous six.