The Suns led at every change and deserved their victory in front of 19,721 fans.
Collingwood moved within three points early in the last quarter, but the Suns steadied through goals to Jared Brennan and captain Gary Ablett to win their sixth game of the season.
Dane Swan had 32 disposals and was one of his team's best, but cost Collingwood a first quarter goal when an errant left foot kick went straight to Seb Tape, who kicked his first career major.
"We weren't real clean with the ball and we butchered a lot of opportunities, especially early, and when the scoreboard pressure comes on it gives the opposition a bit of a sniff," Magpies coach Nathan Buckley said.
"Clearly tonight they had that sniff and they were able to execute for longer than we were and it was too much to chase down in the end."
In the same week as he extended his contract until the end of 2016, Rising Star favourite Jaeger O'Meara was superb again.
The 19-year-old had 23 touches, kicked three goals and laid eight tackles.